春季Kafka消费者,倒退消费者偏移量以返回“ n”记录

时间:2019-07-09 13:31:33

标签: apache-kafka kafka-consumer-api spring-kafka

我正在使用“编程的”方式,使用org.springframework.kafka.listener.ConcurrentMessageListenerContainer来消费来自Kafka主题的消息

我想知道是否存在一种“弹簧式”的方式来回绕主题的特定分区的偏移量以返回“ n”个消息?

想知道最干净的方法(以编程方式而不是使用CLI)。

1 个答案:

答案 0 :(得分:0)

如果要在应用程序启动期间重置偏移量,请使用ConsumerAwareRebalanceListener并在分配分区时对使用者执行查找。您可以通过调用Consumer.position()来找到当前偏移量。

如果要在运行时任意倒退分区,请让侦听器实现ConsumerSeekAware并获取对ConsumerSeekCallback的引用。

有关使用ConsumerSeekAware的示例,请参见this answer

ConsumerSeekAware还具有onIdleContainer(),当idleEventInterval期间未收到任何记录时,将调用它们;该回调为您提供了当前的偏移量。