偏移量
{<TOPICNAME>-0=OffsetAndMetadata{offset=4, metadata=''}}
的异步自动提交失败:
由于组已经重新平衡并将分区分配给另一个成员,因此无法完成提交。这意味着后续调用poll()
的时间比配置的max.poll.interval.ms
更长,这通常意味着轮询循环在消息处理上花费了太多时间。
您可以通过以下方法解决此问题:增加会话超时或通过减小poll()
中max.poll.records
返回的批处理的最大大小。
答案 0 :(得分:1)
session.timeout.ms
应该小于卡夫卡经纪人设置的group.max.session.timeout.ms
。
请参考:
答案 1 :(得分:0)
Session.time.out控制着消费者可以在不向组协调器发送心跳的情况下走多长时间。
设置更高的值意味着检测到真正的失败将花费更长的时间。因此,我们不应该增加session.time.out。
我们现在可以减少最大轮询记录或增加最大轮询间隔以解决此问题。
如果未遵循GroupCoordinator的超时条件,则将获得无效的会话超时。
kafka.coordinator.group。GroupCoordinator
if (sessionTimeoutMs < groupConfig.groupMinSessionTimeoutMs ||
sessionTimeoutMs > groupConfig.groupMaxSessionTimeoutMs) {
responseCallback(joinError(memberId, Errors.INVALID_SESSION_TIMEOUT))
}