Kafka 消费者端的 Rebalance 操作什么时候发生?过程是怎样的?
回答:
1. 发生时间:
1.1同一个 consumer 消费者组 group.id 中,新增了消费者进来,会执行 Rebalance 操作
1.2消费者离开当期所属的 consumer group组。比如宕机
1.3分区数量发生变化时(即 topic 的分区数量发生变化时)
1.4消费者主动取消订阅
2. Rebalance的过程如下:(coordinator至关重要)
第一步:所有成员都向coordinator发送请求,请求入组。一旦所有成员都发送了请求,coordinator会从中选择一个consumer担任leader的角色,并把组成员信息以及订阅信息发给leader。
第二步:leader开始分配消费方案,指明具体哪个consumer负责消费哪些topic的哪些partition。一旦完成分配,leader会将这个方案发给coordinator。coordinator接收到分配方案之后会把方案发给各个consumer,这样组内的所有成员就都知道自己应该消费哪些分区了。
所以对于Rebalance来说,Coordinator起着至关重要的作用