通道

通道 是分布式队列管理器在 IBM® MQ MQI clientIBM MQ 服务器之间或两个 IBM MQ 服务器之间使用的逻辑通信链路。

通道用于将消息从一个队列管理器移动到另一个队列管理器,它们保护应用程序免受底层通信协议的保护。 队列管理器可能存在于同一系统上,也可能存在于同一平台上的不同系统上,也可能存在于不同平台上。 发送的消息可能源自许多位置:
  • 用户编写的应用程序,用于将数据从一个节点传输到另一个节点。
  • 使用 PCF 命令或 MQAI 的用户编写的管理应用程序。
  • IBM MQ Explorer
  • 将检测事件消息发送到另一个队列管理器的队列管理器。
  • 将远程管理命令发送到另一个队列管理器的队列管理器。 例如,使用 MQSC 命令或 administrative REST API

通道有两个定义: 连接的每个端都有一个定义。 要使队列管理器相互通信,必须在要发送消息的队列管理器上定义一个通道对象,在要接收消息的队列管理器上定义另一个补充对象。 在连接的每一端都必须使用相同的 通道名称 ,并且所使用的 通道类型 必须兼容。

IBM MQ中有三个类别的通道,这些类别中有不同的通道类型:
  • 消息通道 (单向) ,将消息从一个队列管理器传输到另一个队列管理器。
  • MQI 通道 (双向) ,用于将 MQI 调用从 IBM MQ MQI client 传输到队列管理器,并将响应从队列管理器传输到 IBM MQ 客户机。
  • AMQP 通道,这是双向通道,用于将 AMQP 客户机连接到服务器上的队列管理器。 IBM MQ 使用 AMQP 通道在 AMQP 应用程序和队列管理器之间传输 AMQP 调用和响应

消息通道

消息通道的用途是将消息从一个队列管理器传输到另一个队列管理器。 客户机服务器环境不需要消息通道。

图 1。 两个队列管理器之间的消息通道
系统 A 上的队列管理器,连接到系统 B 上的队列管理器,使用两个消息通道,每个方向一个消息通道。

消息通道是单向链接。 如果您希望远程队列管理器响应本地队列管理器发送的消息,那么必须设置第二个通道以将响应发送回本地队列管理器。

消息通道使用 消息通道代理程序 (MCA) 连接两个队列管理器。 在通道的每一端都有一个消息通道代理程序。 您可以允许 MCA 使用多个线程来传输消息。 此过程称为 流水线。 Pipelining 使 MCA 能够更高效地传输消息,从而提高通道性能。 有关管道传输的更多信息,请参阅 通道属性

有关通道的更多信息,请参阅 通道-出口调用和数据结构以及 分布式排队组件

MQI 通道

消息队列接口 (MQI) 通道将 IBM MQ MQI client 连接到服务器上的队列管理器,并在您从 IBM MQ MQI client 应用程序发出 MQCONNMQCONNX 调用时建立。

它是双向链接,仅用于传输 MQI 调用和响应,包括包含消息数据的 MQPUT 调用和导致返回消息数据的 MQGET 调用。 有不同的方法可以创建和使用通道定义 (请参阅 定义 MQI 通道 )。

图 2。 MQI 通道上的客户机连接和服务器连接
使用 MQI 通道连接到队列管理器的客户机。 通道在客户机上具有客户机连接,在服务器上具有服务器连接。

[z/OS]MQI 通道可用于将客户机连接到单个队列管理器,或连接到属于队列共享组的队列管理器 (请参阅 将客户机连接到队列共享组 )。

MQI 通道定义有两种通道类型。 它们定义双向 MQI 通道。

客户机连接通道
此类型适用于 IBM MQ MQI client
服务器连接通道
此类型适用于运行队列管理器的服务器,在 IBM MQ MQI client 环境中运行的 IBM MQ 应用程序将与该服务器进行通信。
[UNIX、Linux、Windows、IBM i]

AMQP 通道

只有一种类型的 AMQP 通道。

使用此通道连接 AMQP 消息传递应用程序和队列管理器,从而使该应用程序能够与 IBM MQ 应用程序交换消息。 AMQP 通道允许您使用 MQ Light开发应用程序,然后利用 IBM MQ提供的企业级设施将其部署为企业应用程序。

客户机连接通道

客户机连接通道 是提供从 IBM MQ MQI client 到队列管理器的通信路径的对象。

客户机连接通道用于分布式排队,以在队列管理器和客户机之间移动消息。 它们保护应用程序免受底层通信协议的保护。 客户机可能存在于与队列管理器相同的或不同的平台上。

通道定义

请参阅 通道定义 ,以获取每种类型的通道的描述。