기술 공부 끄적끄적/메시징 시스템
카프카 concurrency 정하는 기준
띠리링구
2024. 1. 7. 16:16
카프카 concurrency 설정 기준
https://jessyt.tistory.com/145
결론 요약
1. 파티션 수 > 쓰레드 수 : 한 쓰레드가 여러 파티션 처리
2. 파티션 수 = 쓰레드 수 : 최적
3. 파티션 수 < 쓰레드 수 : (쓰레드 수 - 파티션 수)만큼의 쓰레드는 idle 상태로 남음
여러 토픽 컨슘시 ( 참고 : https://velog.io/@hyun6ik/Apache-Kafka-Partition-Assignment-Strategy )
1. PartitionAssignor = RangeAssignor (default)
한 쓰레드가 여러 토픽의 파티션을 할당받을수있음.
토픽중에 파티션 제일 많은거랑 concurrency 맞추는게 최적
( range assignor는 파티션이랑 컨슈머를 정렬해놓고 무조건 순서대로 할당해줌 )
2. PartitionAssignor = RoundRobin
round robin 방식으로 consumer에게 파티션 할당
(재분배시 전체 재할당. 재할당되면 한 컨슈머가 다른 파티션을 할당받을수도 있음)
3. PartitionAssignor = StickyAssignor
전체 재할당을 하지 않고 기존 할당을 유지하면서 필요한것만 재할당
k8s에 올리면 pod수만큼 컨슈머 개수가 곱해지는것도 고려