当使用者在5分钟内未收到消息(max.poll.interval.ms的默认值为300000ms)时,使用者将停止,而不会退出程序。使用者进程挂起,不再使用任何消息。
以下错误消息被记录
MAXPOLL|rdkafka#consumer-1| [thrd:main]: Application maximum poll interval (300000ms) exceeded by 255ms (adjust max.poll.interval.ms for long-running message processing): leaving group
我看到here是在融合的kafka-go中定义的git-credential-cache
,但是找不到它的位置。
如果出现任何此类错误,为什么程序不退出?
用于kafka.Consumer的配置
ErrMaxPollExceeded
答案 0 :(得分:1)
看起来这是向 confluent-kafka-go 客户端报告的问题:https://github.com/confluentinc/confluent-kafka-go/issues/344
此更改将其标记为已解决,该更改本应在 librdkafka 1.1.0 版中发布:https://github.com/edenhill/librdkafka/commit/80e9b1ee0c0e477c02f18b130c4302240711a88d
看起来这个变化也应该在 confluent-kafka-go 1.1.0 版中发布:https://github.com/confluentinc/confluent-kafka-go/tree/v1.1.0
问题中的一些评论仍然报告说这是一个在版本 >1.1.0 上的问题。
评论者提出了一个解决方法:
<块引用>使用 v1.5.2。还在无限循环中调用 ReadMessage(-1),并且在消费者离开组后没有看到重新加入,通过将超时设置为小于 max.poll.interval.ms 而不是 -1 来解决它,但想知道为什么它不重新加入为预期。
https://github.com/confluentinc/confluent-kafka-go/issues/344#issuecomment-745014864