#rebalance
글
-
Kafka 소스 파헤치기 11: 컨슈머와 그룹 코디네이터 — poll()과 리밸런스의 안쪽
KafkaConsumer 는 group.protocol 값에 따라 ClassicKafkaConsumer 나 AsyncKafkaConsumer 에 일을 넘기는 껍데기입니다. 기본값 classic 에서는 poll() 을 부른 스레드가 JoinGroup·SyncGroup 으로 리밸런스를 직접 치르고 리더 컨슈머가 할당을 계산하며, consumer 프로토콜(KIP-848)에서는 백그라운드 스레드가 ConsumerGroupHeartbeat 하나로 브로커와 이야기하고 브로커가 할당을 정합니다. 브로커 쪽 그룹 코디네이터가 그룹 상태를 __consumer_offsets 에 레코드로 쓰고 다시 읽어 되살리는 CoordinatorRuntime 까지, 컨슈머 두 개를 차례로 붙이는 예제와 kafka-dump-log.sh 로 확인합니다.