我们在工作流程管理器中使用Azure Service Bus主题(审批流程)。无论如何,当我们将消息推送到服务总线主题时,我们不希望丢失/重复消息。现在有两种选择。 一个。仅使用重试 湾仅使用配对服务总线而无需重试。 由于我们不能同时使用两者,假设在消息推送期间,主服务总线不可用,然后消息pus到配对的服务总线,当主服务总线可用时,然后自动消息推送到主服务器。但是如果我们使用重试,重试将尝试将消息推送到主要,并且由于主要服务总线不可用,消息也将转到配对服务总线。所以有机会处理重复的消息。
对于给定的问题陈述,将消息推送到服务总线的最佳选项是“a”还是“b”?
答案 0 :(得分:1)
这两种选择各有利弊。 使用配对命名空间,您可以在主命名空间关闭时继续发送消息。但不要被愚弄。您只在主命名空间关闭时存储这些消息。他们不会被庇护者重审。其他缺点包括
有关详细信息,请查看此post。
通过重试方法,您可以获得简单性。还有你需要做的事情。使用Azure Service Bus操作可能会因间歇性异常而失败,您仍应重试。仅重试的缺点 - 不能防止中断。这就是为什么你可以使用自定义实现将它与辅助命名空间相结合,但这是一个完全不同的温暖。像NServiceBus这样的库提供了一个可以从中获得想法的自定义实现。