NAVER D2
d2.naver.com
저는 Kafka를 제대로 써본 적은 없고 인프라팀에서 Kafka 클러스터 운영 때문에 가볍게 운영 정도만 하면서 약간의 공부만 해본 정도입니다. 그래서 Kafka 사용에 대해서 자세히 알지는 못합니다.
다양한 운영 정책을 만들고 관리하면서 고나리가 어려웠던 부분 중 하나가 Kafka에서는 파티션당 컨슈머가 하나씩만 붙을 수 있다는 것이었습니다. 다른 조직에서 어떤게 운영하는지는 잘 모르지만 파티션은 프로듀서 측에서 토픽을 설정할 때 파티션 수를 정하게 되는데 이를 소비하는 컨슈머의 로직 등으로 인해서 시간내 처리할 수 있는 메시지보다 많은 메시지가 쌓이게 되면 이를 다 소비하기가 어려워집니다.
이런 상황이 되면 컨슈머의 상황때문에 프로듀서쪽이세 파티션을 설정을 조정하기도 약간 애매한 상황일 수도 있기 때문에 컨슈머 쪽 처리가 복잡해지게 됩니다.
이 문제를 해결하기가 어려운줄 알았다가 네이버의 글을 보고 병렬 컨슈머라는 게 있다는 걸 알게 되었습니다. 위에서 설명한대로 파티션을 늘리지 않고도 컨슈머가 메시지 처리량을 늘리기 위해서 사용할 수 있는데 컨슈머가 병렬로 처리하면 예상할 수 있는 오프셋을 어떻게 기록하는지, 또 병렬로 처리하면서도 메시지의 순서는 어떻게 보장하는지를 자세히 설명하고 있습니다.
https://d2.naver.com/helloworld/7181840
다음 내용이 궁금하다면?
이미 회원이신가요?
2023년 11월 14일 오후 11:36