11

当消费者在 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

我看到这ErrMaxPollExceeded是在 confluent-kafka-go 中定义,但无法找到它在哪里被提出。

如果出现任何此类错误,为什么程序不退出?

  • 卡夫卡 v1.1.0
  • librdkafka v1.0.0
  • confluent-kafka-go (主)

用于 kafka.Consumer 的配置

{
    "bootstrap.servers":    "private.kafka.host",
    "group.id":             "foo.bar",
    "auto.offset.reset":    "earliest",
    "enable.auto.commit":   false,
}
4

1 回答 1

2

看起来这是 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

于 2021-02-21T03:07:15.727 回答