gpt4 book ai didi

java - spring kafka 寻找主题中最新的可用消息

转载 作者:行者123 更新时间:2023-12-01 19:44:05 25 4
gpt4 key购买 nike

我有一个 Kafka 消费者,它订阅了以下主题 MY_TOPICMY_UNINTERESTED_TOPIC

在下面的场景中,我对第二个主题不感兴趣,但我不得不提及它,因为如果我使用诸如 auto.offset.reset 之类的东西配置它,它可能会影响所有主题。

MY_TOPIC 主题上,我发布了不同类型的消息:MESSAGE_TYPE_AMESSAGE_TYPE_B。两条消息都是具有不同属性的 BaseKafkaMessage(自定义类)的实例。

现在我有兴趣查找 MESSAGE_TYPE_A 类型的最新消息。我怎样才能做到这一点?

真实场景是这样的:我就同一主题发布两种类型的消息。其中之一用于在每个对此主题和该消息感兴趣的消费者中准备本地缓存。如果使用者停止,当它重新加载时,它必须使用最新的 MESSAGE_TYPE_A 重新初始化其缓存。应忽略 MESSAGE_TYPE_B。我不想在 Kafka 上向数据提供者发送通知以再次发布数据,因为所有订阅者都会有很多不必要的工作要做。

我怎样才能得到这个?这可能吗?

我找到了https://docs.spring.io/spring-kafka/reference/htmlsingle/#seek但我不确定这是否是我正在寻找的,或者是否有其他方法可以做到这一点。

最佳答案

目前尚不清楚这些消息的格式是什么,也不清楚为什么您确实需要它们位于同一主题中。

你可以use different Avro types例如。或者您必须 try-catch 解析两个不同的字节数组(JSON 对象?)

或者您可以按类型对主题进行分区,以便一种类型的所有消息都按同一分区的顺序排列。

但是,没有机制可以进行索引查找来获取最近发送的消息。要么从最新的事件开始,然后获取下一条传入消息,要么从头开始,然后向上扫描,直到在下一个轮询循环中获得 0 条记录,理论上这是“最新的”

something like auto.offset.reset it may affect all the topics

这只影响消费者感兴趣的那些主题,而不是全部。

关于java - spring kafka 寻找主题中最新的可用消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54133871/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com