我正在使用“编程的”方式,使用org.springframework.kafka.listener.ConcurrentMessageListenerContainer
来消费来自Kafka主题的消息
我想知道是否存在一种“弹簧式”的方式来回绕主题的特定分区的偏移量以返回“ n”个消息?
想知道最干净的方法(以编程方式而不是使用CLI)。
答案 0 :(得分:0)
如果要在应用程序启动期间重置偏移量,请使用ConsumerAwareRebalanceListener
并在分配分区时对使用者执行查找。您可以通过调用Consumer.position()
来找到当前偏移量。
如果要在运行时任意倒退分区,请让侦听器实现ConsumerSeekAware
并获取对ConsumerSeekCallback
的引用。
有关使用ConsumerSeekAware
的示例,请参见this answer。
ConsumerSeekAware
还具有onIdleContainer()
,当idleEventInterval
期间未收到任何记录时,将调用它们;该回调为您提供了当前的偏移量。