Post

토픽과 파티션

토픽과 파티션 주제의 핵심 개념과 적용 포인트를 정리합니다.

토픽과 파티션

토픽과 파티션의 관계

토픽(topic)은 데이터 분류 기준이다. 예를 들어 order-created, payment-failed 같은 이벤트 이름을 토픽으로 나눌 수 있다.
파티션(partition)은 해당 토픽 데이터를 실제로 저장하는 로그 파일 묶음이다.

하나의 토픽은 보통 여러 파티션으로 구성된다.
파티션이 많아질수록 데이터를 여러 브로커에 분산할 수 있어 처리량을 높이기 쉽다.

append-only 로그 구조

Kafka 파티션은 기본적으로 append-only 구조로 동작한다.
즉, 기존 데이터를 중간에서 수정하기보다 끝에 새 레코드를 계속 추가하는 방식이다.

이 구조 덕분에 쓰기 성능이 높고, 컨슈머는 오프셋을 이동시키며 순차적으로 읽는다.
또한 같은 파티션 안에서는 기록 순서가 유지되므로 순서 민감한 처리에 유리하다.

실무 설계 포인트

파티션을 설계할 때는 다음을 함께 봐야 한다.

  • 처리량: 파티션 수가 많을수록 병렬 소비 여지가 커진다.
  • 순서 보장 범위: 순서는 파티션 단위로만 보장된다.
  • 운영 복잡도: 파티션을 과도하게 늘리면 리밸런스, 메타데이터 처리 비용이 증가한다.
  • 복제(Replication): 브로커 장애 시 가용성을 유지하려면 적절한 복제 계수를 설정해야 한다.

결론적으로 토픽/파티션은 단순 개념이 아니라, 성능과 안정성을 동시에 결정하는 핵심 설계 요소다.

This post is licensed under CC BY 4.0 by the author.