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

All Endpoint Instances subscribe and handle event

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

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

有更好的方法吗?在这种情况下,如果我可以配置 NServiceBus 为每个端点实例创建一个单独的传入队列,那就太好了,但我不知道该怎么做,或者即使 NServiceBus 支持这样的用例。

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

通过修改端点名称来区分实例是实现您想要的最直接的方法。

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

此外,如果您想更详细地查看场景,请随时直接与我们联系,我们可能会提供其他方法建议。只需打开一个支持工单。