我的问题是,我无法访问托管在F5负载均衡器后面的Windows Server 2012机器上的MSMQ。我在主动/被动状态下使用负载均衡器,以确保可用性。
当我在连接字符串中直接使用服务器名称时,我可以很好地访问MSMQ,但是当我使用F5 VIP时,我不能访问MSMQ。
以下是工作原理:
FormatName:DIRECT=OS:<servername>\Private$\myQueueName然而,这不是:
FormatName:DIRECT=OS:<F5 VIP>\Private$\myQueueName我还尝试使用TCP读取消息队列,但无济于事:
FormatName:DIRECT=TCP:<servername>\Private$\myQueueName发布于 2014-12-02 02:45:22
没有MSMQ感知的负载平衡器。对于直接排队到服务器,F5也不能做到这一点。因为MSMQ使用多个端口来回通信。
您可以尝试MSMQ的http选项。这可以是网络负载平衡,并与单一端口进行通信。
NserviceBus的Nservicebus.Gateway简化了这个解决方案。您还可以使用Nservicebus中的Distributor在它的工作进程之间进行负载平衡。Nservicebus不建议将其用于负载平衡,建议仅在wan网络中使用。
希望能有所帮助。
https://stackoverflow.com/questions/27135340
复制相似问题