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

本文关键字:访问 MSMQ F5 负载 均衡器 | 更新日期: 2023-09-27 18:32:01

我的问题是我无法访问托管在 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

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

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

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

NserviceBus有Nservicebus.Gateway,它简化了这个解决方案。您还可以使用 Nservicebus 中的 Distributor 来对 IT worker 进行负载平衡。Nservicebus 不建议将其用于负载平衡,建议仅跨 WAN 网络使用。

希望对您有所帮助。