Pau*_*ner 20 azure azureservicebus
我了解Azure Service Bus具有重复的邮件检测功能,该功能将删除它认为与其他邮件重复的邮件.我想使用此功能来帮助防止一些重复传递.
我很好奇的是服务如何确定两条消息实际上是重复的:
Mik*_*eWo 31
重复检测正在查看MessageId代理消息的属性.因此,如果您将消息Id设置为每个消息应该是唯一的,重复检测可以捕获它.据我所知,只有消息Id用于检测.不会查看邮件的内容,因此如果您发送的邮件具有相同的实际内容,但具有不同的邮件ID,则不会将其检测为重复邮件.
参考文献:
MSDN文档:http://msdn.microsoft.com/en-us/library/windowsazure/hh367516.aspx
如果场景不能容忍重复处理,则应用程序中需要额外的逻辑来检测可以基于消息的MessageId属性实现的重复,该消息在传递尝试期间保持不变.这称为完全一次处理.
在WindowsAzure.com上还有一个Brokered Message Duplication Detection代码示例,正如您所要求的那样,它应该是您正在寻找的.
我也快速测试了这个并将5条消息发送到一个RequiresDuplicateDetection设置为true 的队列,所有这些消息都具有完全相同的内容但不同MessageIds.然后我检索了所有五条消息.然后我做了反向,我有匹配MessageIds但不同的有效负载,并且只检索了一条消息.
| 归档时间: |
|
| 查看次数: |
6184 次 |
| 最近记录: |