繁体   English   中英

如何从Kafka主题中检索最新消息

[英]How to retrieve lastest message from Kafka topic

我只是 Kafka 的新手,我有一个问题:

我在 Kafka 中有主题“A”,我启动 Spring Boot 应用程序并使用 MessageChannel 向主题“A”发送一些消息,然后我停止应用程序。

无论如何,当我再次启动应用程序时,是否可以获得我发送到主题“A”(并非所有消息)的最新消息? 我已经搜索了所有解决方案,但它们对我没有太大帮助,如果我只发送新消息,它总是会立即收到消息。 如果您有可运行的代码,请分享,我非常感谢:(

    // Start application


    // Get latest message in topic 'A' then do some LOGIC
    if (exist latest message) {
          //Print latest message
    }

您的使用者存储其偏移量(即最后读取的位置)。 重新启动后,他们将从这一点继续阅读。 此行为是设计使然。

当由于某种原因(例如,这是一个新的消费组或偏移量已过期)而尚未得知此特定使用者组的偏移量时,将使用偏移量重置属性,但是通常还是有两个选择-a)从开始b)开始收听新消息,忘记之前的所有内容。

哈克的方式来实现你所描述的东西,但他们并不简单,不推荐使用(是小事一桩:直到你到达分区EOF消费者的消息,而只是跳过它们)

也许仅仅是Kafka不是解决此问题的正确工具。

一种选择可能是结合@saabeilin所说的“重新开始阅读所有内容”以及Log Compaction

如果配置正确,日志将被压缩,仅保留最后一个ID,因此重新读取操作将导致仅发送最后一条消息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM