Spring boot 当使用者的处理时间超过max.poll.interval.ms时,使用者未下降

Spring boot 当使用者的处理时间超过max.poll.interval.ms时,使用者未下降,spring-boot,spring-kafka,Spring Boot,Spring Kafka,我正试图在SpringKafka上用SpringBoot和版本(2.3.7版本)做一个简单的poc,以实现消费者批处理的工作方式,以及如果消费者需要更多的处理时间,如何进行再平衡,因为我对这个消息传递系统是完全陌生的 现在我看到了卡夫卡与单个消费者重新平衡的问题(不允许并发) 这些是我设置的属性 max.poll.interval.ms=50000和factory.getContanerProperties.setIdealTimeBetweenPolls(120000) 并使消费者批量生产过程

我正试图在SpringKafka上用SpringBoot和版本(2.3.7版本)做一个简单的poc,以实现消费者批处理的工作方式,以及如果消费者需要更多的处理时间,如何进行再平衡,因为我对这个消息传递系统是完全陌生的

现在我看到了卡夫卡与单个消费者重新平衡的问题(不允许并发)

这些是我设置的属性 max.poll.interval.ms=50000和factory.getContanerProperties.setIdealTimeBetweenPolls(120000) 并使消费者批量生产过程花费更多的时间 大于此最大轮询间隔毫秒。(70秒) 我在这里看到的问题是,消费者每隔2分钟就会触发一次,因此,每2分钟就会发生一次重新平衡。根据我的理解,实际上这不应该发生。只有在第一次重新平衡时才会发生


这里有什么我遗漏的吗?

是的,如果您超过
max.poll.interval.ms
,则始终会发生重新平衡-代理认为您的消费者已经死亡,因此会收回分区(即使没有更多消费者)


当你下次投票时,会发生重新平衡,因为你只有一个消费者,他会再次获得所有8个分区。

嘿,Mr_k,我会帮你的。您能告诉我您使用了多少个发布服务器和订阅服务器吗?我们有一个主题的发布服务器,主题有8个分区。一个消费者订阅了该主题。另外,我正在尝试使用确认进行手动提交。那么您面临的问题是什么,或者您试图实现什么?如果您需要重新平衡,您需要多个并发消费,并且因为您使用的是一个,所以没有重新平衡的概念,您是否也可以分享您的卡夫卡消费者配置?谢谢哈克什·库马尔和加里·拉塞尔。我使用并发方法(8个消费者)进行测试,其中1个消费者的时间超过了轮询间隔,而其他消费者的时间更短。我观察到consumer1分区被租用并共享给另一个使用者,并看到了适当的重新平衡。