如何在负载均衡器后面的C#中访问MSMQ(F5)

时间:2014-11-25 19:44:52

标签: c# .net msmq windows-server-2012

我的问题是我无法访问F5负载均衡器后面的Windows Server 2012上托管的MSMQ。我在主动/被动状态下使用负载均衡器以确保可用性。

我可以在连接字符串中直接使用服务器名称时访问MSMQ,但是当我使用F5 VIP时我无法访问。

以下作品:

FormatName:DIRECT=OS:<servername>\Private$\myQueueName

然而,这不是:

FormatName:DIRECT=OS:<F5 VIP>\Private$\myQueueName

我还尝试使用TCP读取消息队列无效:

FormatName:DIRECT=TCP:<servername>\Private$\myQueueName

1 个答案:

答案 0 :(得分:1)

没有MSMQ感知负载均衡器。 F5也无法实现直接排队到服务器。由于MSMQ使用多个端口进行来回通信。

您可以尝试MSMQ的http选项。这可以是网络负载平衡并与单个端口通信。

NserviceBus有Nservicebus.Gateway,它简化了这个解决方案。您还可以使用Nservicebus中的Distributor来为工作人员进行负载均衡。 Nservicebus不建议将其用于负载平衡,建议仅在wan网络中使用。

希望它有所帮助。