상위: Kafka
요약
Broker는 Kafka 서버로, 메시지를 저장하고 관리하는 역할을 합니다. 여러 Broker가 모여 Cluster를 구성하며, 파티션을 분산 저장하여 확장성과 내결함성을 제공합니다.
Broker의 역할
메시지 저장 및 관리
- Producer로부터 메시지 수신
- 디스크에 메시지 영구 저장
- Consumer에게 메시지 전달
- 파티션 리더/팔로워 역할 수행
클러스터 구성
- 여러 Broker가 모여 Cluster 형성
- 각 Broker는 고유 ID 보유
- Zookeeper를 통해 상태 관리

Broker 설정
주요 설정 파일
config/server.properties
# Broker ID (클러스터 내 고유)
broker.id=0
# 리스너 주소
listeners=PLAINTEXT://localhost:9092
# 로그 저장 경로
log.dirs=/var/lib/kafka/data
# Zookeeper 연결
zookeeper.connect=localhost:2181
리소스 설정
# JVM 힙 메모리 (권장: 4~8GB)
export KAFKA_HEAP_OPTS="-Xmx8G -Xms8G"
# 네트워크 스레드 수 (CPU 코어 수와 비슷하게)
num.network.threads=8
# I/O 스레드 수
num.io.threads=16
# 소켓 버퍼 크기 (0: 자동 조절)
socket.send.buffer.bytes=0
socket.receive.buffer.bytes=0
Broker 모니터링
주요 지표
- Throughput (MB/s): 초당 처리 데이터량
- Request Time: 요청 처리 시간
- CPU/Memory/Disk Usage: 리소스 사용량
- Network I/O: 네트워크 입출력



Broker 관리
Broker 시작/중지
# 시작
kafka-server-start.sh config/server.properties
# 중지
kafka-server-stop.sh
Broker 상태 확인
# Zookeeper에서 Broker 목록 확인
zookeeper-shell.sh localhost:2181 ls /brokers/ids
주의사항
- Broker ID는 클러스터 내 고유해야 함
- 로그 디렉토리는 충분한 디스크 공간 필요
- JVM 힙 메모리가 너무 크면 GC 문제 발생 가능
- 네트워크 대역폭이 병목이 될 수 있음