所有端点实例都订阅并处理事件

时间:2017-08-30 14:30:47

标签: rabbitmq nservicebus

我有一个处理事件的通知服务,并使用各种技术(例如SignalR)将它们发布到客户端。我想要我的通知服务的每个实例来接收和处理这些事件。但是,NServiceBus只允许我的通知服务端点的任何一个实例接收事件,而其他实例永远不会获取它。

我目前的解决方法是为我的通知服务的每个实例创建一个单独的命名端点(该名称已添加服务器主机名),但是我必须确保在实例时取消订阅该事件下降或移动到另一台服务器。

有更好的方法吗?如果我能在这种情况下配置NServiceBus为每个端点实例创建一个单独的传入队列,那将是很好的,但我无法弄清楚如何做到这一点,或者即使NServiceBus支持这样的用例。

1 个答案:

答案 0 :(得分:1)

你是对的。 NServiceBus不支持这种情况。订阅者始终被视为逻辑端点,因此即使它们可用,也不会使用个性化队列。

通过修改端点名称来区分实例是实现所需目标的最直接方式。

将微分器更改为可控制的运行时值(例如环境变量)至少可以减少移动实例时取消订阅的需要。

此外,如果您想更详细地查看该方案,请不要犹豫直接与我们联系,我们可能还有其他建议方法。只需打开支持票。