出于测试目的,我在Kafka主题上发布了5k条消息,并且在我的spring批处理应用程序中,我使用pull方法每次迭代读取100条消息,它在完成之前运行约2小时。
面对下面的错误时,执行被停止。
org.apache.kafka.common.errors.TimeoutException: 60000 ms的超时过期之前成功提交补偿
原因和解决方法是什么?
你在两个小时内看完了所有的信息吗?如果它仍然是消费,MAX_POLL_INTERVAL_MS_CONFIG可能被触发。默认为5分钟。如果poll()之间的间隔超过5分钟,它将被踢出消费者组并重新平衡。在此过程中,消费者组不可用。我不清楚更多的信息,只提供一个解决方向。
fix by 20211012:"如果它仍然在消耗,MAX_POLL_INTERVAL_MS_CONFIG可能会被触发">意味着如果消费还没有完成,那么消费速度很慢,那么这个机制可能会被触发。您可以调整此参数以尝试验证。