피드로 돌아가기
Kafka Partitioning Strategies: How to Get It Right Before It Costs You
Dev.toDev.to
Infrastructure

Parallelism 확보와 Order 보장을 위한 Kafka Partitioning 설계 전략

Kafka Partitioning Strategies: How to Get It Right Before It Costs You

Anthony Gicheru2026년 6월 28일10intermediate

Context

초기 설계 시 Partition 수와 Key 선정에 대한 검토 부족으로 인한 Production 장애 빈번. 데이터 처리량 증가에 따라 Consumer 병렬 처리 한계 및 Hot Partition으로 인한 처리 지연 발생.

Technical Solution

  • Parallelism 확보를 위해 초기 Partition 수를 예상 Consumer 수의 2~3배로 설정하는 확장성 설계
  • Event 순서 보장이 필수적인 도메인(주문, 트랜잭션 등)에 Murmur2 기반 Key-based Partitioning 적용
  • High Cardinality Key(user_id, order_id) 선정을 통한 데이터 skew 방지 및 부하 분산 최적화
  • 순서 보장이 불필요한 데이터(로그, 메트릭)에 Round-robin 방식을 적용하여 처리량 극대화
  • Kafka 2.4 버전 이후 도입된 Sticky Partitioning을 통한 Batch 효율성 및 Broker 네트워크 부하 감소
  • 특수 목적(지리적 라우팅, 컴플라이언스) 해결을 위한 Custom Partitioner의 제한적 활용

1. Topic 생성 전 데이터의 순서 보장 필요 여부 정의

2. Key 후보군의 Cardinality를 분석하여 Hot Partition 발생 가능성 검토

3. 1년 뒤 트래픽 성장치를 반영한 Partition 수 산정 및 기록

4. Keyless Topic의 단기적 불균형을 Sticky Partitioning 특성으로 인지하고 모니터링

원문 읽기