피드로 돌아가기
Kafka for Data Engineers: Core Concepts, KRaft, and the Patterns That Actually Work
Dev.toDev.to
Infrastructure

ZooKeeper 제거 및 KRaft 도입을 통한 Kafka 아키텍처 단순화와 확장성 확보

Kafka for Data Engineers: Core Concepts, KRaft, and the Patterns That Actually Work

De' Clerke2026년 6월 2일20intermediate

Context

기존 Kafka 아키텍처는 클러스터 메타데이터 관리를 위해 별도의 ZooKeeper 클러스터 운영이 필수적이었음. 이로 인해 모니터링 복잡도 증가와 ZooKeeper 고유의 장애 모드 발생이라는 운영 오버헤드 한계점이 존재함.

Technical Solution

  • Raft 합의 알고리즘을 브로커 내부에 직접 통합한 KRaft 구조 채택으로 외부 의존성 제거
  • Incremental Rebalance 프로토콜(KIP-848) 도입을 통해 파티션 재할당 시 발생하는 전체 컨슈머 중단 문제 해결
  • Idempotent Producer와 Transaction 설정을 통해 At-least-once 기본 보장 체계에서 Exactly-once 정밀도 확보
  • 파티션 수를 target throughput과 컨슈머 수의 최댓값으로 설정하여 병렬 처리 최적화 설계
  • Change Data Capture(CDC) 패턴에 Debezium을 결합하여 DB Write-ahead log 기반의 실시간 이벤트 스트리밍 구현

- Kafka

4.0 이상 도입 시 ZooKeeper 없이 KRaft 전용 모드로 구성 - 기존 ZooKeeper 클러스터는

3.9 버전으로 업그레이드 후 마이그레이션 툴링을 거쳐

4.0+로 전환 - 신뢰성 확보를 위해 acks=all 및 enable.idempotence=True 설정 적용 - 데이터 유실 방지를 위해 enable.auto.commit=False 설정 후 수동 커밋 로직 구현 - 처리량 확장을 위해 파티션 수를 보수적으로 시작하되, 필요 시 증설하는 전략 채택

원문 읽기
Kafka for Data Engineers: Core Concepts, KRaft, and the Patterns That Actually Work | Devpick