首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CommitFailedException:由于组重平衡,无法完成提交

CommitFailedException:由于组重平衡,无法完成提交
EN

Stack Overflow用户
提问于 2016-09-28 11:07:58
回答 1查看 11.2K关注 0票数 2

我正在使用kafka 0.9.0.1 broker0.9.0.1客户端。我的使用者实例正在消耗处理时间小于1秒的记录。和其他主要的秘密是

代码语言:javascript
复制
enable.auto.commit=false
session.timeout.ms=30000
heartbeat.interval.ms=25000

处理后,我将提交偏移。我得到了例外

为组UNKNOWN_MEMBER_ID提交偏移时发生错误kafka_to_s3 错误com.bsb.hike.analytics.consumer.Consumer -由于组重新平衡,无法提交retryCount=2 retryCount=2提交无法完成

一小时一到两次。每天消耗约60亿个事件。似乎偏移仅存储在主题"__consumer_offsets“的一个分区中。它还会增加特定代理的负载。

有人知道这些问题吗?

EN

回答 1

Stack Overflow用户

发布于 2016-10-03 06:22:35

如果卡夫卡在会议暂停期间没有收到至少一次心跳,它就会触发一次再平衡。如果触发重新平衡,提交将失败。这是意料之中的。所以问题是为什么心跳没有发生?这可能有几个原因。

  1. 第一件事是,您正在执行手动提交。从0.9开始,心跳不会在单独的线程中发生。使用者在一个处理提交、心跳和轮询的线程上运行。因此,当您执行consumer.poll()或consumer.commit()时,心跳就会发生。因此,如果您的处理时间超过会话超时,则可能导致心跳失败。
  2. 卡夫卡0.9消费者中有一个已知的问题,这可能会导致你面临的问题。

https://issues.apache.org/jira/browse/KAFKA-3627

在任何一种情况下,将你的消费者评级降至0.8将解决问题。

编辑:您可以尝试将会话时间增加到5分钟,并查看它是否有效。

关于卡夫卡的吐露

Kafka服务器期望它在会话超时期间至少接收一次心跳。因此,使用者最多尝试做一个心跳(会话超时/心跳时间)。有些心跳可能会被错过。所以你的心跳时间不应该超过会话时间的1/3。(您可以参考文档)

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39745733

复制
相关文章

相似问题

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