Spring boot 处理消息时获取Kafka错误

Spring boot 处理消息时获取Kafka错误,spring-boot,apache-kafka,Spring Boot,Apache Kafka,偏移量的异步自动提交{-0=OffsetAndMetadata{offset=4,metadata='''}}失败: 卡夫卡消费者处理消息时出现此错误 无法完成提交,因为组已重新平衡并将分区分配给其他成员。这意味着对poll()的后续调用之间的时间比配置的max.poll.interval.ms长,这通常意味着轮询循环花费了太多的时间来处理消息。您可以通过增加会话超时或减少poll()中返回的批处理的最大大小来解决此问题消费者上设置的最大轮询记录数会话超时.ms应小于Kafka broker上设

偏移量的异步自动提交
{-0=OffsetAndMetadata{offset=4,metadata='''}}
失败:

卡夫卡消费者处理消息时出现此错误


无法完成提交,因为组已重新平衡并将分区分配给其他成员。这意味着对
poll()
的后续调用之间的时间比配置的
max.poll.interval.ms
长,这通常意味着轮询循环花费了太多的时间来处理消息。
您可以通过增加会话超时或减少
poll()中返回的批处理的最大大小来解决此问题消费者上设置的
最大轮询记录数
会话超时.ms
应小于Kafka broker上设置的
组.max.session.timeout.ms

请参阅:


Session.time.out控制消费者在不向组协调员发送心跳信号的情况下可以走多长时间

设置更高的值意味着,检测真正的故障需要更长的时间。因此,我们不应该增加session.time.out

我们现在可以减少max.poll.records或增加max.poll.interval.ms来解决此问题

如果我们没有遵循GroupCoordinator的超时条件,那么我们将得到无效的会话超时

卡夫卡协调小组

if(sessionTimeoutMsgroupConfig.groupMaxSessionTimeoutMs){
responseCallback(joinError(memberId,Errors.INVALID_SESSION_TIMEOUT))
}

您是否尝试过遵循错误消息的建议?为您的问题添加一些描述,可能会显示您的配置的适当部分
 if (sessionTimeoutMs < groupConfig.groupMinSessionTimeoutMs ||
      sessionTimeoutMs > groupConfig.groupMaxSessionTimeoutMs) {
      responseCallback(joinError(memberId, Errors.INVALID_SESSION_TIMEOUT))
    }