Kafka 如何检查消息是否已在队列中

rks48beu  于 2023-01-08  发布在  Apache
关注(0)|答案(3)|浏览(293)

有没有办法检查Kafka队列中是否已经有某条消息?我不想使用它,只是检查它是否已经在队列中。例如,我的消息是一个简单的JSON对象:

{
    id: 123,
    name: "message"
}

因此,我想检查ID为的消息:123已经在队列中,所以我的应用程序不会第二次发送它。我有Node.js服务,并使用kafkajs npm库

iugsix8n

iugsix8n1#

我不想使用它,但只需检查它是否已在队列中
这是不可能的。您需要使用主题来检查是否存在任何事件。
您需要使用并写入其他地方(Redis、MongoDB等),然后查询那个上的索引,以防止与Kafka主题重复。
或者,考虑到由于保留策略的原因记录最终会从主题中删除,将此逻辑嵌入到下游使用者中,而不是担心主题上有什么。

igetnqfo

igetnqfo2#

可能是**ksqlDB**会有帮助。它将流转换为可查询状态。

5gfr0r5j

5gfr0r5j3#

Kafka通过幂等生产者/恰好一次语义支持幂等性。这意味着它确保发布在Kafka主题上的消息不应该从生产者端复制。
标志:EnableIdempotence = true

相关问题