组的心跳失败,因为它正在重新平衡

cgvd09ve  于 2021-06-07  发布在  Kafka
关注(0)|答案(1)|浏览(344)

团队心跳衰竭的确切原因是什么,因为它正在重新平衡?在群体中所有的消费者都站起来的情况下,重新平衡的原因是什么?
谢谢您。

frebpwbc

frebpwbc1#

心跳是检查所有消费者是否仍在运行的基本机制。如果由于组正在重新平衡而导致心跳失败,则表明您的使用者示例发送下一个心跳所用的时间太长,被认为已死亡,因此触发了重新平衡。
如果要防止这种情况发生,可以增加超时时间( session.timeout.ms ),或者确保您的消费者更频繁地发送心跳信号( heartbeat.interval.ms ). 心跳基本上是嵌入 poll() 因此,您需要确保足够频繁地调用poll。这通常可以通过限制单个轮询返回的记录数来实现 max.poll.records (以缩短处理获取的所有数据所需的时间)。
更新
自从kafka0.10.1以来,心跳是在后台线程中发送的,而不是在 poll() 称为(参见。https://cwiki.apache.org/confluence/display/kafka/kip-62%3a+allow+consumer+to+send+heartbeats+from+a+background+thread). 在这种新的设计中,配置 session.timeout.ms 以及 heartbeat.interval.ms 都是一样的。此外,还有 max.poll.interval.ms 这就决定了 poll() 必须呼叫。
有关更多详细信息,请参阅session.timeout.ms和max.poll.interval.ms之间的差异(对于kafka 0.10.0.0及更高版本)

相关问题