kafka消费者群组与分区再均衡

group.id指定了消费者所属的消费群组,默认是必须指定的。

同一个群组里的消费者订阅的同一个主题,每个消费者接收主题的一部分分区的消息。

如果群组里的消费者数量超过主题的分区数量,就会有一部分消费者被闲置,不会接收到任何消息。

同一个主题可以被多个消费者群组消费,消费者群组之间互不影响,而且正常情况下,同一条消息只能被群组里的一个消费者消费一次。

再均衡:读取分区的所有权从群组内的一个消费者转移到另一个消费者。分区的再均衡策略保证了消费者群组的高可用性和伸缩性(我们可以放心地添加或移除消费者)。

在再均衡期间,消费者无法读取消费,造成整个群组一小段时间内的不可用。当分区被重新分配给另一个消费者时,消费者当前的读取状态会丢失,它可能需要去刷新缓存,在它重新恢复之前会拖慢应用程序。

消费者通过向指派为群组协调器的broker(不同的群组可以有不同的协调器)发送心跳来维持它们和群组的从属关系以及它们对分区的所有权。消费者会在轮询消息或者提交偏移量时发送心跳。如果消费者停止发送心跳的时间足够长,会话就过期,群组协调器就会认为它已经死亡,就会触发一次再均衡。用户可以主动调用close()方法来关闭连接,这样可以立即触发再均衡。

猜你喜欢

转载自blog.csdn.net/Wengzhengcun/article/details/83822376