消费者组rebalancing:consumer group 'ClientConsumer' is balancing

发布时间 2023-11-06 17:50:29作者: eiSouthBoy

背景介绍

消费者正常消费一段时间后,断开连接,再次连接消费消费。发现尽管生产者一直在生产消息,但消费者却无法消费消息。

查询消费者组的信息:

出现警告:Warning: Consumer group 'ClientConsumer' is rebalancing,导致消费者无法消费消息。一定要等待这个警告消失


若是警告:Warning: Consumer group 'ClientConsumer' is rebalancing 需要很长时间才能消失,那么导致很多消息都会滞后很长时间才能消费。

解决方法

由于启动一个consumer客户端仅订阅一个主题,理论不会出现groupId重复上线消费,那么猜测一下:“可能consumer客户端关闭后,并没有和kafka broker断开连接?”

测试了一下,发现通过UI关闭窗口按钮并不会运行关闭连接函数:rd_kafka_consumer_close(rk);,而是直接出去了。这就导致了consumer客户端并没有和kafka broker断开连接,然后相同groupId的客户端又重新上线消费,就会导致冲突,kafka broker需要等待一定的时间rebalancing。

不通过UI的关闭按钮退出,而是通过 Ctrl+C 中断信号退出,发现kafka broker中consumer group立即刷新了,也没有出过relancing warning了

注意:确保consumer client和kafka broker是完成断开连接操作,否则会引发relancing warning

参考

简记kafka group id相同导致的不同consumers启动后不消费和延时消费问题

kafka 不同的consumer需要使用不同的group id