【问题标题】:How MSMQ handles connection with remote machineMSMQ 如何处理与远程计算机的连接
【发布时间】:2016-09-19 18:49:26
【问题描述】:

我有客户端机器和服务器机器。两台机器都在同一个网络中。如果客户端机器上的应用程序试图向服务器机器上的队列发送一些东西,MSMQ 服务是否能够处理服务器机器突然脱机的情况?假设一些排队的消息已经被传递,它会尝试每隔 5 秒重新传输队列吗?我找不到这方面的相关信息。

另外,我的想法是使用 MSMQ 作为客户端应用程序和服务器应用程序之间的中介,其中客户端服务器连接非常不可靠。我在想,与其编写自己的从链接中断恢复的实现,不如让 MSMQ 通过将消息从客户端机器发送到服务器机器并让服务器应用程序从它的本地(服务器)队列中读取来完成它。这是正确的方法吗?它是否适用于不在 AD 中的机器?也许如果他们在 AD 中,如果应该在网络上复制公共队列,那么公共队列将是可行的方式?

【问题讨论】:

    标签: server message-queue remote-access msmq


    【解决方案1】:

    MSMQ 依赖于:

    1. TCP/IP 重试机制
    2. MSMQ 重试机制

    以确保消息传递。 请注意,快递(即发即弃)和事务性(保证)消息的传递机制不同。 MSMQ 将确认消息发送到系统队列以确保传递。还有一个duplicate detection mechanism

    “这是正确的做法吗?”
    是的,您正在讨论经典的 MSMQ 模型。

    “它是否适用于 AD 之外的机器?”
    AD 不会影响 MSMQ 发送消息的方式。

    “如果他们在 AD 中,如果应该在网络上复制公共队列,那么可能会采用公共队列?”
    AD 所做的只是让您存储有关队列的信息。队列本身只存在于一个地方。 AD 只是复制了如何找到那个队列。 在大多数情况下,AD 对 MSMQ 来说是不必要的开销。一定要在域成员计算机上使用 MSMQ,但不要因为它们存在就觉得必须使用公共队列。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-12
      • 1970-01-01
      • 1970-01-01
      • 2016-06-25
      • 2017-03-08
      • 1970-01-01
      相关资源
      最近更新 更多