【问题标题】:Duplicate detection with NServiceBus on Azure Service Buus在 Azure 服务总线上使用 NServiceBus 进行重复检测
【发布时间】:2016-12-31 13:32:42
【问题描述】:

我使用 NServiceBus 作为 Azure 服务总线的抽象层(以防我们离开 Azure)。我发现当与多个订阅者(订阅相同事件的订阅者)一起工作时,重复消息的数量会增加。我知道 Azure 服务总线 (ASB) 有一种检测这些重复项的方法,我可以看到该功能可以通过 NServiceBus 进行配置(根据文档)。但是,我只能获得通过配置部分实现重复检测的示例。我需要的是如何使用代码实现这一目标的示例。

谢谢

苏拉杰

【问题讨论】:

  • 您使用的是哪个版本的 NServiceBus 和 Azure 服务总线传输?

标签: nservicebus azureservicebus


【解决方案1】:

您也可以使用基于代码的方法指定配置。 NServiceBus 必须签订可以帮助解决 IConfigurationSourceIProvideConfiguration<T> 的合同。这是an example 如何获取配置文件部分 (UnicastBusConfig) 并通过代码指定值。

具体到你所问的,实现IProvideConfiguration<AzureServiceBusQueueConfig> 将允许你configure ASB transport,指定重复等。

观察到由于订阅者增加而导致重复数量增加,这只是一种症状,而不是问题。这可能是一个不同的问题,与配置无关。话虽如此,我会在启用本机重复数据删除之前对其进行研究。虽然您可以指定 RequiresDuplicateDetectionDuplicateDetectionHistoryTimeWindow,但请注意 ASB 仅对 ID 属性执行重复检测。此外,最好将您的处理程序构建为幂等的,而不是依赖本机的重复数据删除。

【讨论】:

  • 嗨,肖恩,感谢您的帮助和建议。
猜你喜欢
  • 2016-12-25
  • 1970-01-01
  • 2016-04-28
  • 1970-01-01
  • 2013-05-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-25
相关资源
最近更新 更多