Broker의 Group Coordinator와 Consumer/Consumer Group
Rebalancing의 발생


Consumer Group Status

Consumer 스태틱 그룹 맴버십의 필요성
Consumer 스태틱 그룹 맴버십(Static Group MemberShip)

session.timeout.ms내에 재가동되면 rebalance가 발생하지 않고, 기존 파티션 재할당Consumer의 Heart Beat Thread

heartbeat.interval.ms
default = 3000mssession.timeout.ms보다 낮게 설정되어야 함session.timeout.ms의 1/3 보다 낮게 설정하는 것이 권장session.timeout.ms
default = 45000msmax.poll.interval.ms

default = 300000mspoll() 호출 후 다음 호출 poll()까지 브로커가 기다리는 시간poll()호출이 Consumer로 부터 이뤄지지 않으면 해당 Consumer는 문제가 있는 것으로 판단하고 브로커는 rebalance 명령Consumer Rebalance의 Eager 모드

Consumer Rebalance (Incremental) Cooperative 모드

Consumer 파티션 할당 전략

Round Robin과 Range 비교

round robin, range 비교 - 1

round-robin, range 비교 - 2

round robin rebalance 전/후

sticky의 rebalance 전/후 → sticky는 기존 매핑을 기억하고 최대한 유지

cooperative sticky의 rebalance 전/후 → sticky와 유사하지만 모두 취소하지 않는 차이