Broker와 Cluster
Kafka Broker/Cluster의 역할과 Zookeeper, MirrorMaker 운용 관점을 함께 정리합니다.
Broker와 Cluster
Kafka를 안정적으로 운영하려면 Producer/Consumer API보다 Broker와 Cluster 동작 원리를 먼저 이해해야 한다.
Broker의 역할
Broker는 메시지를 받아 파티션 로그에 저장하고, Consumer fetch 요청에 응답한다.
핵심 책임은 세 가지다.
- 로그 append와 오프셋 관리
- 복제(replication) 동기화
- 보존 정책(retention)에 따른 데이터 관리
즉, Broker는 단순 전달자가 아니라 저장소와 분산 제어를 동시에 담당한다.
Cluster와 파티션 리더십
Cluster는 여러 Broker로 구성된다. 각 파티션은 리더/팔로워 복제본을 가지며, Producer는 리더에 기록한다.
- 리더 장애 시 팔로워 승격으로 가용성 확보
- 파티션 분산으로 처리량 확장
- 복제 계수로 내구성 조절
운영 관점에서는 파티션 배치와 리더 편중 여부를 주기적으로 점검해야 한다.
Zookeeper의 위치 (운영 배경)
기존 Kafka 운영에서는 Zookeeper가 메타데이터 관리와 브로커 조정에 사용되었다.
- 브로커 상태 관리
- 리더 선출 보조
- 클러스터 메타데이터 저장
버전별로 KRaft 전환이 진행되고 있으므로, 운영 환경에서는 “현재 클러스터가 Zookeeper 기반인지”를 먼저 확인해야 한다.
다중 클러스터 복제와 MirrorMaker
MirrorMaker는 클러스터 간 토픽 복제를 위한 도구다. 단일 클러스터 내부 복제와 달리, 리전 간 DR/이관 시나리오를 다룬다.
주요 사용 사례:
- 데이터센터 간 재해 복구
- 분석 클러스터 분리
- 단계적 마이그레이션
복제 정책은 토픽 선정, 지연 허용치, 순서 보장 요구사항을 기준으로 설계해야 한다.
This post is licensed under CC BY 4.0 by the author.