我使用的是kafka版本0.10.2.0,我在云上有两个vm,每个vm都有一个kafka消费者。这两个消费者属于同一个消费群体。在我更新kafka消费者配置之前,它工作得很好 max.poll.interval.ms
至 Integer.MAX_VALUE
. 当我重新启动vm时,vm首先启动,工作正常。稍后启动的vm将始终停留在(重新)加入组
有人知道这是什么原因吗?
我之所以做此更改,是因为我在版本0.10.2.1中看到了 max.poll.interval.ms
已从更改 300000
至 Integer.MAX_VALUE
.
2条答案
按热度按时间vuktfyat1#
问题似乎不是由“max.poll.interval.ms”引起的
基于Kafka文献(https://kafka.apache.org/documentation/)
我会检查是否有足够的分区分配到这些消费者。
另外,我建议您在kafka日志中激活调试模式。通常,它会显示很多关于连接过程内部的信息。
zaq34kh62#
这是对版本0.10.1.0的更改:
新的java使用者现在支持后台线程的心跳。有一个新配置max.poll.interval.ms,它控制在使用者主动离开组之前轮询调用之间的最长时间(默认为5分钟)。configuration request.timeout.ms的值必须始终大于max.poll.interval.ms,因为这是使用者重新平衡时joingroup请求可以在服务器上阻止的最长时间,因此我们将其默认值更改为略高于5分钟。
这也适用于你的版本
顺便说一句,在版本0.10.2.0中,kafka consumer的max.poll.interval.ms没有更改,但kafka streams consumer的max.poll.interval.ms没有更改:
内部kafka streams consumer max.poll.interval.ms默认值已从300000更改为integer.max\u值