有没有办法检查Kafka队列中是否已经有某条消息?我不想使用它,只是检查它是否已经在队列中。例如,我的消息是一个简单的JSON对象:
{ id: 123, name: "message" }
因此,我想检查ID为的消息:123已经在队列中,所以我的应用程序不会第二次发送它。我有Node.js服务,并使用kafkajs npm库
iugsix8n1#
我不想使用它,但只需检查它是否已在队列中这是不可能的。您需要使用主题来检查是否存在任何事件。您需要使用并写入其他地方(Redis、MongoDB等),然后查询那个上的索引,以防止与Kafka主题重复。或者,考虑到由于保留策略的原因记录最终会从主题中删除,将此逻辑嵌入到下游使用者中,而不是担心主题上有什么。
igetnqfo2#
可能是**ksqlDB**会有帮助。它将流转换为可查询状态。
5gfr0r5j3#
Kafka通过幂等生产者/恰好一次语义支持幂等性。这意味着它确保发布在Kafka主题上的消息不应该从生产者端复制。标志:EnableIdempotence = true
EnableIdempotence = true
3条答案
按热度按时间iugsix8n1#
我不想使用它,但只需检查它是否已在队列中
这是不可能的。您需要使用主题来检查是否存在任何事件。
您需要使用并写入其他地方(Redis、MongoDB等),然后查询那个上的索引,以防止与Kafka主题重复。
或者,考虑到由于保留策略的原因记录最终会从主题中删除,将此逻辑嵌入到下游使用者中,而不是担心主题上有什么。
igetnqfo2#
可能是**ksqlDB**会有帮助。它将流转换为可查询状态。
5gfr0r5j3#
Kafka通过幂等生产者/恰好一次语义支持幂等性。这意味着它确保发布在Kafka主题上的消息不应该从生产者端复制。
标志:
EnableIdempotence = true