[Kafka][Consumer] 파티션과 메시지 순서

Joney의 SW 공부 블로그·2024년 5월 19일
0

Kafka study

목록 보기
6/7

파티션과 메시지 소비 순서의 관계

Kafka는 Topic에 메시지를 저장할 때 파티션을 나눠서 저장하게 되는데 파티션이 여러개인 경우 메시지 순서가 보장되지 않음


파티션 3개 구성

메시지 수신 실험

  • 구성 옵션 : 파티션 3, 리플리케이션 펙터 1
  • 1차로 Topic에 a,b,c,d,e 순서로 메시지를 발행하고 Consumer가 메시지를 수신한 결과
a
d
b
e
c
  • 2차로 Topic에 1,2,3,4,5 순서로 메시지를 발행하고 --from-beginning 옵션으로 Consumer가 메시지를 수신한 결과
a
d
1
4
b
e
2
5
c
3

수신 결과를 보면 메시지 발행 순서와 수신 순서가 다른 것을 확인할 수 있음

결과 분석

각 파티션에 저장된 메시지를 보면 아래와 같이 나눠져 있음

  • partition-0
b
e
2
5
  • partition-1
a
d
1
4
  • partition-2
c
3

각 파티션을 그림으로 나타내면 아래와 같이 메시지가 저장되어 있다고 알 수 있음

파티션과 메시지 수신 순서는 아래와 같이 정리할 수 있음

  • Consumer가 여러 파티션에서 메시지를 수신할 때는 각 파티션을 순서대로(라운드로빈 등의 알고리즘으로) 메시지를 소비함
  • 메시지가 파티션에 나눠져서 저장되어 있기 때문에 파티션 간에 메시지 순서는 보장되지 않음
  • 한 파티션에 대해서는 오프셋 순서로 메시지를 수신하기 때문에 메시지 순서가 보장 됨
profile
SW 지식 노트 블로그

0개의 댓글