何时为get / put活动选择远程队列设计与本地队列

时间:2015-07-09 20:13:50

标签: ibm-mq

我试图弄清楚在什么条件下我想要实现一个远程队列而不是本地一个用于2个端点应用程序。

请考虑以下情况:服务器 A 上的应用 A 需要向服务器 B 上的应用 B 发送消息通过MQServer1。

似乎最简单的配置是在MQServer1上创建单个本地队列,并配置AppA将消息放入本地队列,同时配置AppB以从同一本地队列获取消息。 AppA和AppB都将连接到同一个队列管理器,但执行不同的命令。

在什么样的情况下需要安装另一个MQ服务器(例如MQServer2)并在MQServer1上配置远程队列,而是通过一个通道将消息从AppA发送到MQServer2上的本地队列以供AppB使用? / p>

我相信我理解远程排队的好处,但我不确定它何时最好用于更简单的设计。

2 个答案:

答案 0 :(得分:2)

以下是您所谓的远程排队所不具备的简单设计的一些问题: -

  • 时间独立 - Server1必须始终可用,而对于远程队列,一旦将消息移动到服务器B,服务器A和服务器1就不需要当App B想要收到消息时,请联机。
  • 网络效率 - 两个客户端应用程序从中央队列进入或从中央队列进入,您有两个低效的网络跃点,而不是从服务器A到服务器B的一个有效通道批量网络连接(不需要服务器1在中间)
  • 网络问题 - 没有网络,没有消息。而当它们存储在本地时,即使在网络中断时也可以处理任何已经到达的数据。同样,放置消息的应用程序也不会受到网络问题的影响,传输队列中的消息很容易被移动,应用程序可以继续下一步。

当然,您的应用程序应该被编写,以便他们甚至不知道差异,并且只是配置更改会将您从一个设计切换到另一个设计。

答案 1 :(得分:0)

这里我们可以为应用程序提供单独的队列管理器。应用程序A将消息发送到本地队列管理器上定义的队列,然后通过定义的通道将其传输到传输队列(需要为此配置在QueueManager中,然后将其发送到应用程序B的本地队列。