【发布时间】:2017-02-14 13:52:33
【问题描述】:
我已阅读 StackOverflow 上有关在 SF 上使用 NSB 的其他问题以及 github 上的示例(已过时),但我仍然不确定如何为该平台正确配置 NServiceBus。
我希望设置仅发送的发布/订阅工作流程。通过我的研究,我无法确定如何设置它,以便只有一个特定服务的实例响应消息。
例如:在标准的 5 个节点上运行 3 个服务(因此假设 3 个服务中的每一个都有 5 个实例)。
- 现有负载平衡器将 http 请求路由到服务 A 的特定实例。
- 服务 A 发布“OrderComplete”事件
- 服务 B 和 C 都订阅了该事件。
- 如何确保只有一个服务 B 和 C 实例响应,而不是所有 5 个服务 B 实例和所有 5 个服务 C 实例?
目前所有服务都是无状态服务。
我正在考虑使用 AzureServiceBus 或 AzureStorageQueue 传输。
【问题讨论】:
-
你有没有以某种方式得到这个答案?
-
@CrusherJoe 我相信它的主要部分是使用主题。为服务 A 创建一个主题订阅,然后从该订阅中处理事件的第一件事获胜,除非您创建单独的订阅,否则所有实例都没有机会处理该消息。所以总而言之,多个订阅使多个事物能够处理单个消息(主题)。 docs.microsoft.com/en-us/azure/service-bus-messaging/… 正如下面的答案所述,服务的所有实例都将充当竞争消费者。
标签: nservicebus azure-service-fabric