我在我的Spring Boot应用程序中使用了KafkaListener接口,它运行得很好。偏差由卡夫卡本人存储。
现在让我们说一个主题的消费者之一部署一个新版本并搞砸了2个小时的消息。然后他们修复了应用程序,并希望从两个小时前开始使用偏移量来启动新版本。
我可以将consumer.seek()与之前的consumer.offsetsForTimes()调用一起使用,但是当我使用轮询机制时,这只是直截了当,而不是在使用Spring KafkaListener时。
我尝试使用ConsumerRebalanceListener,但要设置偏移量,我需要让消费者处于活动状态,这在实例化ConsumerRebalanceListener时我没有...
我是否需要切换到轮询? 我可以在第一次调用KafkaListener之前到达消费者,但是在为消费者分配了分区之后?
答案 0 :(得分:1)
不同时;即将到来的2.0 release介绍了ConsumerAwareMessageListener
,它支持将Consumer
作为参数传递到@KafkaListener
方法。