首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >卡夫卡消费集团再平衡

卡夫卡消费集团再平衡
EN

Stack Overflow用户
提问于 2020-03-19 08:19:32
回答 1查看 12.2K关注 0票数 1

我正在使用kafka消费群管理来处理我的信息。

我的邮件的处理时间各不相同。因此,我已经设置了最大轮询间隔为20分钟的最大记录,我使用了5个分区和5个消费者实例的默认配置值,除了上述两个。

但是,我还是间歇性地收到了以下错误:

代码语言:javascript
复制
[Consumer clientId=consumer-3, groupId=amc_dashboard_analytics] Attempt to heartbeat failed since group is rebalancing

我们的理解是,除非在达到使用者配置文档中所写的最大轮询间隔之前不调用轮询,否则不会发生再平衡。但对我来说,再平衡只在20分钟前发生。

此外,在运行了几个小时之后,所有分配的消费者都会离开,说“尝试心跳失败,因为组正在重新平衡”,并且不再返回(理想情况下,应该再次加入)。

我是不是漏掉了什么?任何线索都会有帮助。

EN

回答 1

Stack Overflow用户

发布于 2020-03-19 09:11:35

再平衡的另一个原因是没有发送心跳的session.timeout.ms到期。您可以考虑增加这个使用者配置。

卡夫卡博士:

heartbeat.interval.ms:,当使用Kafka的组管理设施时,心跳之间的预期时间到消费者协调器。心跳用于确保使用者的会话保持活跃,并在新的使用者加入或离开组时促进再平衡。该值必须设置为低于session.timeout.ms,但通常不应高于该值的1/3。它可以进行更低的调整,以控制正常再平衡的预期时间。(违约日期: 3000)

session.timeout.ms:用于在使用Kafka的组管理工具时检测客户端故障的超时。客户端向代理发送周期性心跳以表示其活性。如果代理在此会话超时到期前未接收到心跳,则代理将从组中删除该客户端并启动重新平衡。注意,该值必须在由group.min.session.timeout.ms和group.max.session.timeout.ms在代理配置中配置的允许范围内。(违约日期: 10000)

您可以查看此链接以获得更多信息。

即使心跳通过单独的线程以固定的时间间隔发送,在某些情况下,无法将心跳发送到session.timeout.ms中的代理。造成这种情况的一些可能原因是:

  • 网络问题
  • 停止消费者或代理方的世界垃圾收集。
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60753274

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档