Skip to content

Commit

Permalink
기본이 중요하다 [Kafka]
Browse files Browse the repository at this point in the history
  • Loading branch information
dhyeonkim committed Aug 13, 2024
1 parent 95292a4 commit f544dca
Showing 1 changed file with 73 additions and 0 deletions.
73 changes: 73 additions & 0 deletions _posts/2024-07-29-Kafka.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,79 @@ mermaid: true

---

# Broker, Controller Docker Compose

```yaml
services:
kafka_broker:
user: root
image: confluentinc/cp-kafka:latest
container_name: kafka_broker
ports:
- "9092:9092"
- "9101:9101"
- "29092:29092"
environment:
# 각 카프카 브로커의 고유 식별자 설정
# ${BROKER_ID}: 환경 변수, 실행 시 지정된 값으로 대체
KAFKA_NODE_ID: ${BROKER_ID}

# 노드 역할을 'broker'로 지정
# KRaft 모드: 'broker', 'controller', 또는 둘 다 가능
KAFKA_PROCESS_ROLES: 'broker'

# 브로커 간 통신에 사용할 리스너 이름 지정
KAFKA_INTER_BROKER_LISTENER_NAME: 'PLAINTEXT'

# 컨트롤러 통신에 사용할 리스너 이름 지정
KAFKA_CONTROLLER_LISTENER_NAMES: 'CONTROLLER'

# 각 리스너에 대한 보안 프로토콜 매핑
# 모든 리스너: 암호화되지 않은 PLAINTEXT 프로토콜 사용
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: 'CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT'

# 카프카가 수신할 주소와 포트 지정
# PLAINTEXT: 29092 포트, PLAINTEXT_HOST: 9092 포트 사용
KAFKA_LISTENERS: 'PLAINTEXT://:29092,PLAINTEXT_HOST://:9092'

# 클라이언트에게 알릴 리스너 주소 지정
# ${EXTERNAL_IP}: 환경 변수, 실제 IP 주소로 대체
KAFKA_ADVERTISED_LISTENERS: 'PLAINTEXT://${EXTERNAL_IP}:29092,PLAINTEXT_HOST://${EXTERNAL_IP}:9092'

# KRaft 모드에서 컨트롤러 쿼럼 구성 지정
# 3개의 컨트롤러(KAFKA1, KAFKA2, KAFKA3)가 29093 포트 사용
KAFKA_CONTROLLER_QUORUM_VOTERS: '3001@${KAFKA1}:29093,3002@${KAFKA2}:29093,3003@${KAFKA3}:29093'

# 오프셋 토픽의 복제 팩터 설정
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 3

# 초기 리밸런싱 지연 시간 설정
KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0

# 트랜잭션 상태 로그의 최소 ISR(In-Sync Replicas) 설정
KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 3

# 트랜잭션 상태 로그의 복제 팩터 설정
KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 3

# JMX(Java Management Extensions) 포트 설정
KAFKA_JMX_PORT: 9101

# JMX 호스트 이름 설정
KAFKA_JMX_HOSTNAME: localhost

# 카프카 로그 디렉토리 위치 지정
KAFKA_LOG_DIRS: '/tmp/kraft-combined-logs'

# 클러스터의 고유 식별자 설정
CLUSTER_ID: 'kafka-cluster'
volumes:
- ./data:/var/lib/kafka/data
restart: always
```
---
# 옵션 커스텀 고려해볼만한 것
## 브로커 옵션
Expand Down

0 comments on commit f544dca

Please sign in to comment.