Nservicebus路由

时间:2016-02-18 21:26:54

标签: nservicebus

我们有多个Web和Windows应用程序部署到我们计划使用NservierBus集成的不同服务器,让所有应用程序可以在它们之间发布/发送消息,我认为我们使用pub / sub模式并使用MSMQ传输将是对它有好处。但有一件事我不清楚它是否是一种避免硬代码将子端点设置为MSMQ QueueName @ ServerName的方法,如果pub位于另一台服务器上,则直接在其中包含服务器名称。在6-pre我看到了设置端点名称然后使用路由委托到传输级地址的想法,这是一个解决方案吗?或者只有网关才是解决方案?经纪人是个好主意吗?这种情况的最佳做法是什么?

1 个答案:

答案 0 :(得分:1)

使用pub / sub时,订阅者当前需要知道发布者队列的位置。然后,订户每次启动时都会向该队列发送订阅消息。它无法知道它是否已经订阅以及它是否订阅了所有消息,因为您可能已添加/配置了一些新消息。

发布者读取这些订阅消息并将订阅存储在存储中。 NServiceBus为您完成此操作,因此无需为此编写代码。您唯一需要的是在订户中配置发布者(队列)的位置。 我自己写了一个教程,你可以在这里找到:http://dennis.bloggingabout.net/2015/10/28/nservicebus-publish-subscribe-tutorial/

话虽如此,您应该特别注意与发布消息的网站有关的问题。有关这方面的更多信息,请访问:http://docs.particular.net/nservicebus/hosting/publishing-from-web-applications

在使用MSMQ的横向扩展情况下,您还可以使用分发服务器:http://docs.particular.net/nservicebus/scalability-and-ha/distributor/

作为最后一点:它取决于具体情况,但我不会太担心知道端点(或其队列)的位置。我很可能不会仅仅因为这个技术问题而使用pub / sub。但同样,这完全取决于具体情况。我可以理解随机产生的富客户端可能会想要这个。但是还有其他解决方案,具有更集中的存储和所有富客户端都可以访问的API。

相关问题