티스토리 뷰

카프카에서 Topic의 Partition을 Consumer에게 어떻게 할당할 것인지에 대한 전략. 
(주요 참고 내용은 아래 링크 블로그를 참고 함)
https://medium.com/streamthoughts/understanding-kafka-partition-assignment-strategies-and-how-to-write-your-own-custom-assignor-ebeda1fc06f3

나중에 수정될지는 모르겠지만 읽고 특징과 단점을 정리

1. Range Assignor
 Consumer member_idlexicographic (사전식)으로 정렬한 뒤, Topic의 각 Partition을 Numeric순으로 Consumser에게 할당한다.
 문제점으로 보이는 부분은 같다.
 - Topic의 Partition갯수만큼 Consumer가 필요
 - Consumer 숫자보다 Topic Partition수가 적은 경우 lexicographic 정렬상 뒷쪽에 오는 Consumer들은 자원을 유휴상태로 낭비하는 경우가 많게 될 것으로 보인다.


2. Round Robin Assignor
 Round Robin은 전체 Consumer에 대해서 Topic/Partition들을 순차적으로 분배하는 방식으로, Range에 비해서 Consumer 활용을 극대화 한다는 장점이 있다.
 반면, 위에서 참고한 블로그에서 보면, Consumer중 하나가 종료되는 경우에, 서로 다른 Broker에 존재하는 동일 Topic의 Parition이 한 Consumer에 몰리는 경우가 생겨, Partition 처리의 장점을 상쇄시켜 버리는 결과가 발생하기도 한다.

3. StickyRoundRobinAssignor
 Round Robin과 기본적으로 동일하나, Consumer가 종료시에 Partition 이동을 최소화 시키도록 변형된 것이다.
Round Robin은 Consumer 종료시 전체 재배치를 하는 것으로 보인다. 


 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함