IBM Queue Message Transmission 理解

IBM Queue Message Transmission understanding

我对本地队列与远程队列的用法感到困惑。让我举一个场景:

我有一个将消息 (Msg1) 发送到 IBM MQ 的应用程序 1,该消息将消息存储在 QMGR 中的队列 1 中,然后由应用程序 2 使用。

在这个阶段,我是否有必要实施远程队列或本地队列。如果我为此使用本地队列,那么我将在哪里使用远程队列。

我认为这是一个基本问题,但我只是想更好地了解 IBM MQ。请帮助我提出您的建议。

谢谢

如果您只是使用 MQ,以便一个应用程序可以将消息存储在队列中以供另一个应用程序检索,所有这些都在单个队列管理器中,那么本地队列就足够了。在 MQ 中,消息始终驻留在本地队列(正常或传输队列)中,其他定义只是帮助路由流量。

使用远程队列的一个例子是,当您希望将应用程序分开时,推杆应用程序放入一台机器上的一个队列管理器,而 consumer/getter 应用程序位于另一个队列中经理可能在另一台机器上。在这种情况下,putter 可以寻址远程队列,但消息实际上最终在传输队列上 - 然后通道从传输队列中检索消息,通过通道将其流向另一个队列管理器并放入 'local' 消费者正在读取的目标队列管理器上的队列。

例如,使用远程队列,可以将生产者和消费者分开,而无需他们更改从中获取的队列名称 - 想象一下,生产者和消费者都从队列 MYQUEUE 中读取。然后,您可以将使用者移动到一个队列管理器 (QM1),该队列管理器具有名为 MYQUEUE 的远程队列,其真实(远程)名称是另一个队列管理器 (QM2) 上的 MYQUEUE。在队列管理器 2 上,您将有一个名为 MYQUEUE 的本地队列定义。生产者仍然打开并写入 MYQUEUE,并且不知道其消息将被路由,消费者仍然从 MYQUEUE 读取并检索消息。