[Consumer clientId=notification-processor-db9aa8a3-6c3b-453b-b8c8-106bf2fa257d-StreamThread-1-consumer, groupId=notification-processor] Member notification-processor-db9aa8a3-6c3b-453b-b8c8-106bf2fa257d-StreamThread-1-consumer-b2b9eac3-c374-43e2-bbc3-d9ee514a3c16 sending LeaveGroup request to coordinator****:9092 (id: 2147483646 rack: null) due to consumer poll timeout has expired. This means the time between subsequent calls to poll() was longer than the configured max.poll.interval.ms, which typically implies that the poll loop is spending too much time processing messages. You can address this either by increasing max.poll.interval.ms or by reducing the maximum size of batches returned in poll() with max.poll.records.
看起来StreamThread的Kafka Consumer已经离开了Consumer Group,但是Kafka Streams应用程序仍然处于RUNNING状态而没有消费任何新记录。
我想检测到Kafka Streams应用程序进入这种僵尸状态,以便可以关闭它并使用新实例代替。通常,我们通过Kubernetes健康检查来验证Kafka Streams应用程序处于RUNNING或REPARTITIONING状态,但对于此情况无效。
因此,我有两个问题: 1. 当Kafka Streams应用程序没有活动的消费者时,它仍然处于RUNNING状态是否合理?如果是,为什么? 2. 我们如何检测(通过编程/指标)Kafka Streams应用程序进入了没有活动消费者的僵尸状态?
alive-stream-threads
指标中。有关详细信息,请参见我上面的回复。 - S Blee-G