我是卡夫卡的新手。目前,我已经创建了一个关于Kafka主题的java消费者。我想要的是在启动java应用程序时只获得新消息。
在互联网上查看后,我发现我可以通过设置属性来做到这一点:auto.offset.reset: earliest
,但我们不想使用它。此外,在做了一些研究后,我发现也许我们可以通过将消费者补偿更新为最早的补偿来做到这一点。有人能帮我知道我该怎么做吗?
请注意,我正在使用KStream订阅该主题。卡夫卡2.4.0版订阅源代码:
StreamsBuilder sb = new StreamsBuilder();
sb.stream("topic").foreach((t, u) -> {...})
将消费者偏移更新为最早的
当您的application.id
是全新的时,这是auto.offset.reset
的默认行为和配置。
请注意,我正在使用KStream订阅主题。
那么你就不能在运行时搜索(或者至少不应该,假设你使用的是有状态处理器(
使用应用程序重置工具可以帮助管理拓扑中使用的所有主题。
您能指定为什么不想使用auto.offset.reset吗?
这将是做你想做的事情的默认方法。除此之外,您还需要获取主题的每个分区的最新偏移量,然后";点";您的消费者到您想要消费的分区上的偏移量。