【问题标题】:How to access MSMQ in C# behind load balancer (F5)如何在负载均衡器后面使用 C# 访问 MSMQ (F5)
【发布时间】:2014-11-25 19:44:51
【问题描述】:

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

【问题讨论】:

  • 你试过在ServerFault中询问吗?我知道您正在尝试从 C# 代码访问 MSMQ,但这似乎更像是配置问题而不是代码问题。
  • Robbie 这是否与Scalling Out 类型的问题/问题有关,如果是,请查看此链接social.msdn.microsoft.com/Forums/en-US/…

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


【解决方案1】:

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

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

NserviceBus 有 Nservicebus.Gateway 简化了这个解决方案。您还可以使用 Nservicebus 中的 Distributor 来平衡工作人员之间的负载。 Nservicebus 不建议将其用于负载平衡,仅建议跨 WAN 网络使用。

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-29
    • 2011-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多