Java 如何从卡夫卡主题中检索最新消息
我只是卡夫卡的新手,我有个问题: 我在卡夫卡中有一个主题“A”,我启动Spring boot应用程序并使用MessageChannel向主题“A”发送一些消息,然后我停止应用程序 当我再次启动应用程序时,是否仍然可以获取我发送到主题“A”的最新消息(并非所有消息)?我搜索了所有的解决方案,但它们对我帮助不大,如果我只发送新消息,它总是会立即收到消息。如果您有可运行的代码,请分享,我非常感谢:(Java 如何从卡夫卡主题中检索最新消息,java,apache-kafka,Java,Apache Kafka,我只是卡夫卡的新手,我有个问题: 我在卡夫卡中有一个主题“A”,我启动Spring boot应用程序并使用MessageChannel向主题“A”发送一些消息,然后我停止应用程序 当我再次启动应用程序时,是否仍然可以获取我发送到主题“A”的最新消息(并非所有消息)?我搜索了所有的解决方案,但它们对我帮助不大,如果我只发送新消息,它总是会立即收到消息。如果您有可运行的代码,请分享,我非常感谢:( 您的使用者存储其偏移量(即上次读取的位置)。重新启动后,他们将从此点继续读取。此行为是出于设计 当由于
您的使用者存储其偏移量(即上次读取的位置)。重新启动后,他们将从此点继续读取。此行为是出于设计 当由于某种原因(例如,它是一个新的用户组或偏移量已过期)此特定用户组的偏移量未知时,将使用偏移量重置属性,但通常有两个选项-a)从头开始重新读取b)开始侦听新消息,忘记以前的一切 有很多方法可以实现您所描述的,但它们并不简单,也不推荐(一个很简单的方法:消费者消息,在到达分区EOF之前跳过它们)
也许Kafka不是解决此问题的合适工具。您是否检查了Kafka属性
auto.offset.reset=latest
?@apandey846:是的,我添加了,我将Spring云绑定用于这些配置:resetoffset:true startOffset:latest
// Start application
// Get latest message in topic 'A' then do some LOGIC
if (exist latest message) {
//Print latest message
}