카프카 파티션 개수 산정식 설계 여정
백엔드
카프카 파티션 개수 산정식 설계 여정
두줄요약
Kafka 파티션 수를 처리량과 컨슈머 catch-up 기준으로 계산하는 산정식을 정리했습니다. 운영 환경 실측값을 반영해 토픽별 초기 파티션 수를 일관되게 정하는 방법을 제안했습니다.
핵심 내용
- Kafka 파티션 수를 토픽 처리량, 컨슈머 병렬성, 순서 보장, 운영 비용까지 함께 고려해 산정하는 기준 정리
- 최종 산정식은 producer 피크 처리량과 consumer catch-up 요구량을 각각 파티션당 처리량으로 나눈 뒤 큰 값을 올림으로 계산
- consumer 요구량은 평균 유입량과 다운타임, catch-up 목표를 반영해 산정하고, 파티션당 ingress/egress 값은 공개 가이드와 실측으로 보정
- Confluent Cloud Enterprise 실측 기준으로 ingress 6MB/s, egress 0.1MB/s, catch-up 배수 5를 기본값으로 제안
적용해볼 점
- 토픽 생성 시 평균/피크 처리량, 다운타임, catch-up 목표를 먼저 수치화
- 운영 환경에서 ingress/egress와 컨슈머 처리 시간을 직접 측정해 기준값 재산정
- 파티션 수는 많을수록 안전하다는 가정보다 필요한 만큼만 여유 있게 설정
