首页 > 解决方案 > Kafka 消费组不断进入 PreparingRebalance 状态并停止消费

问题描述

我们有一个 Kafka Streams 消费者组,它不断进入 PreparingRebalance 状态并停止消费。模式如下:

  1. 消费者组正在运行并稳定约 20 分钟

  2. 新的消费者(成员)在没有任何明确原因的情况下开始出现在群组状态中,这些新成员仅来自少数虚拟机(每次不是相同的虚拟机),并且不断加入

  3. 组状态更改为 PreparingRebalance

  4. 所有消费者停止消费,显示这些日志:“组协调器......不可用或无效,将尝试重新发现”

  5. 生成额外成员的 VM 上的使用者会显示以下日志:

偏移量 Y 在分区 X 上的偏移量提交失败:协调器不知道该成员。

无法提交流任务 X,因为它已经迁移到另一个线程。在触发新的重新平衡之前将其作为僵尸关闭。

检测到迁移到另一个线程的任务 Z。这意味着该线程错过了重新平衡并退出了消费者组。将尝试重新加入消费者组。

  1. 我们杀死所有虚拟机上的所有消费者进程,该组移动到具有 0 个成员的 Empty,我们启动进程并返回到第 1 步

Kafka 版本是 1.1.0,流版本是 2.0.0

我们从行为不端的消费者那里获取了线程转储,并且没有看到比配置更多的消费者线程。

我们尝试重新启动 kafka 代理,清理 zookeeper 缓存。

我们怀疑这个问题与丢失的心跳有关,但默认的心跳是 3 秒,并且消息处理时间与此相差无几。

有人遇到过类似的行为吗?

标签: apache-kafkakafka-consumer-apiapache-kafka-streams

解决方案


推荐阅读