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 = 3000ms
session.timeout.ms
보다 낮게 설정되어야 함session.timeout.ms
의 1/3 보다 낮게 설정하는 것이 권장session.timeout.ms
default = 45000ms
max.poll.interval.ms
default = 300000ms
poll()
호출 후 다음 호출 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와 유사하지만 모두 취소하지 않는 차이