我们在开发环境中使用nServiceBus,我们有一个前端向服务(订阅者)发布消息。生活很美好。
FrontendWebServer - > MiddlewareServer
在我们的生产环境中,我们将运行两个前端和两个中间件服务器进行故障转移。
FrontendWebServer - > LoadBalancer(F5) - > MiddlewareServer
FrontendWebServer - > LoadBalancer(F5) - > MiddlewareServer
这适用于网址,但由于我们需要为MSMQ使用计算机名称,因此我们遇到了问题。
我们不希望在每个前端配置中指定一个物理中间件机器名称(因为它会使管理配置变得更难,如果一个中间件服务器发生故障,它也会阻止其特定前端的消息)。
我们尝试使用nServiceBus分发服务器(安装在每个前端),但似乎订阅者只能收听一个分发服务器。
我们如何在不使用单独配置的情况下解决此问题?
答案 0 :(得分:0)
我会在网络服务器前推动F5以平衡负载。对于群集,只需引用群集服务器名称和服务,而不是单个计算机。例如,如果你有Node1和Node2,你可以调用Cluster NSBNode或类似的东西。
如果您将该群集作为分发服务器,则可以在其后面添加多个Worker节点以进一步进行负载平衡。同样在这种情况下,还要引用群集队列名称(queue @ ClusterName)。