Azure Service Bus主题 - 已配对或重试

时间:2018-04-05 02:04:24

标签: azure-servicebus-topics

我们在工作流程管理器中使用Azure Service Bus主题(审批流程)。无论如何,当我们将消息推送到服务总线主题时,我们不希望丢失/重复消息。现在有两种选择。 一个。仅使用重试 湾仅使用配对服务总线而无需重试。 由于我们不能同时使用两者,假设在消息推送期间,主服务总线不可用,然后消息pus到配对的服务总线,当主服务总线可用时,然后自动消息推送到主服务器。但是如果我们使用重试,重试将尝试将消息推送到主要,并且由于主要服务总线不可用,消息也将转到配对服务总线。所以有机会处理重复的消息。

对于给定的问题陈述,将消息推送到服务总线的最佳选项是“a”还是“b”?

1 个答案:

答案 0 :(得分:1)

这两种选择各有利弊。 使用配对命名空间,您可以在主命名空间关闭时继续发送消息。但不要被愚弄。您只在主命名空间关闭时存储这些消息。他们不会被庇护者重审。其他缺点包括

  • 没有良好的可测性。
  • 增加成本(您发送到辅助服务器,从服务器返回以发送到主服务器)。
  • 故障转移到辅助设备不是很直观。您必须在失败后手动重试邮件。 会自动切换到辅助命名空间。

有关详细信息,请查看此post

通过重试方法,您可以获得简单性。还有你需要做的事情。使用Azure Service Bus操作可能会因间歇性异常而失败,您仍应重试。仅重试的缺点 - 不能防止中断。这就是为什么你可以使用自定义实现将它与辅助命名空间相结合,但这是一个完全不同的温暖。像NServiceBus这样的库提供了一个可以从中获得想法的自定义实现。