MSMQ如何处理与远程计算机的连接

时间:2016-05-23 02:08:36

标签: server message-queue remote-access msmq

我有客户机和服务器机器。两台机器都在同一个网络中。如果客户端计算机上的应用程序尝试将某些内容发送到服务器计算机上的队列,那么MSMQ服务是否能够处理服务器计算机突然脱机的情况?假设已经发送了一些已排队的消息,它是否会尝试重新发送每个队列,即5秒?我找不到相关的相关信息。

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

1 个答案:

答案 0 :(得分:1)

MSMQ依赖:

  1. TCP / IP重试机制
  2. MSMQ重试机制
  3. 确保邮件传递。 请注意,传递机制因快速(即发即弃)和事务(保证)消息而异。 MSMQ向系统队列发送确认消息以确保传递。还有duplicate detection mechanism

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

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

    “也许如果它们在AD中,如果它应该在整个网络中重复,那么公共队列就是可行的方法吗?” 所有AD都允许您存储有关队列的信息。队列本身只存在于一个地方。 AD只是复制了如何找到一个队列。 在大多数情况下,AD对于MSMQ来说是不必要的开销。一定要在域成员机器上使用MSMQ,但不要因为它们在那里而使用公共队列。