2017-08-30 78 views
1

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

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

有没有更好的方法来做到这一点?如果我可以配置NServiceBus在这种情况下为每个端点实例创建一个单独的传入队列,但是我不知道如何做,或者即使NServiceBus支持这样的用例也不错。

+0

所有的实例是完全相同还是它们具有不同的功能,例如每个支持一个给定的技术? –

+0

@ Bob.Langley所有端点实例都是相同的逻辑端点,并且具有完全相同的位。 –

+0

您使用的是哪个版本的NServiceBus? –

回答

1

你是对的。 NServiceBus不支持这种情况。订户总是被视为逻辑端点,所以个性化的队列即使可用也不会被使用。

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

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

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