gpt4 book ai didi

azure - Azure 服务总线如何识别重复消息?

转载 作者:行者123 更新时间:2023-12-05 01:28:15 24 4
gpt4 key购买 nike

据我了解,Azure 服务总线具有重复消息检测功能,该功能将删除它认为与其他消息重复的消息。我想使用此功能来帮助防止重复投递。

我好奇的是该服务如何确定两条消息实际上是重复的:

  • 考虑了消息的哪些属性?
  • 是否考虑了消息的内容?
  • 如果我发送两条内容相同但消息属性不同的消息,它们是否会被视为重复消息?

最佳答案

重复检测正在查看 MessageId代理消息的属性。因此,如果您将消息 ID 设置为每条消息都应该是唯一的,重复检测就可以捕获它。据我所知,只有消息Id用于检测。不会查看消息的内容,因此如果您发送的两条消息具有相同的实际内容,但具有不同的消息 ID,则它们不会被检测为重复。

引用文献:

MSDN 文档:https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-queues-topics-subscriptions

If the scenario cannot tolerate duplicate processing, then additionallogic is required in the application to detect duplicates which can beachieved based upon the MessageId property of the message which willremain constant across delivery attempts. This is known as ExactlyOnce processing.

还有一个Brokered Message Duplication Detection code sample在 WindowsAzure.com 上,只要证明这一点,这应该正是您所寻找的。

我还快速测试了这一点,并向队列发送了 5 条消息 RequiresDuplicateDetection设置为 true,内容完全相同但不同 MessageIds 。然后我检索了所有五条消息。然后我做了相反的事情,我有匹配的 MessageIds但有效负载不同,并且只检索到一条消息。

关于azure - Azure 服务总线如何识别重复消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20006360/

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