전체 그래프
Kafka

Kafka Broker

data-engineeringtool/kafkaconcept/broker

상위: Kafka

요약

Broker는 Kafka 서버로, 메시지를 저장하고 관리하는 역할을 합니다. 여러 Broker가 모여 Cluster를 구성하며, 파티션을 분산 저장하여 확장성과 내결함성을 제공합니다.

Broker의 역할

메시지 저장 및 관리

  • Producer로부터 메시지 수신
  • 디스크에 메시지 영구 저장
  • Consumer에게 메시지 전달
  • 파티션 리더/팔로워 역할 수행

클러스터 구성

  • 여러 Broker가 모여 Cluster 형성
  • 각 Broker는 고유 ID 보유
  • Zookeeper를 통해 상태 관리

Kafka Broker

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: 네트워크 입출력

Kafka Broker

Kafka Broker

Kafka Broker

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 문제 발생 가능
  • 네트워크 대역폭이 병목이 될 수 있음