Kafka系列之:Kafka消费组中消费者再均衡的原理
一、GroupCoordinator和ConsumerCoordinator
- GroupCoordinator是kafka服务端中用于管理消费组的组件。
- 消费者客户端中的ConsumerCoordinator组件负责与GroupCoordinator进行交互。
GroupCoordinator和ConsumerCoordinator之间最重要的职责就是负责执行消费者再均衡的操作,包括前面提及的分区分配的工作也是在再均衡期间完成的。
一共有如下几种情形会触发再均衡的操作:
- 有新的消费者加入消费组
- 有消费者宕机下线。消费者并不一定需要真正下限,例如遇到长时间的GC、网络延迟导致消费者长时间未向GroupCoordinator发送心跳等情况时,GroupCoordinator会认为消费者已经下线。
- 有消费者主动退出消费组(发送LeaveGroupRequest请求)。比如客户端调用了unsubscrible()方法取消对某些主题的订阅。
- 消费组所对应的GroupCoorinator节点发生了变更。
- 消费组内所订阅的任一主题或者主题的分区数量发生变化。

本文详细介绍了Kafka消费组中消费者再均衡的原理,包括GroupCoordinator和ConsumerCoordinator的角色、触发再均衡的场景以及再均衡的四个阶段:FIND_COORDINATOR、JOIN_GROUP、SYNC_GROUP和HEARTBEAT。讨论了分区分配策略的选举、心跳维护和消费者状态管理,揭示了Kafka消费组高效运行的背后机制。
订阅专栏 解锁全文
762

被折叠的 条评论
为什么被折叠?



