通道
IBM® MQ 可以使用三种不同类型的通道: 消息通道, MQI 通道和 AMQP 通道。
请勿混淆这几种不同类型的通道:
- 消息通道
- 消息通道是两个队列管理器之间的单向通信链路。 IBM MQ 使用消息通道在队列管理器之间传输消息。 要双向发送消息,您必须定义每个方向的通道。
- MQI 通道
- MQI 通道是双向通道,用于将应用程序(MQI 客户机)连接至服务器上的队列管理器。 IBM MQ 使用 MQI 通道在 MQI 客户机和队列管理器之间传输 MQI 调用和响应。
AMQP 通道
- AMQP 通道,这是双向通道,用于将 AMQP 客户机连接到服务器上的队列管理器。 IBM MQ 使用 AMQP 通道在 AMQP 应用程序和队列管理器之间传输 AMQP 调用和响应。
当提到消息通道时,通道一词常用作通道定义的同义词。 通常从上下文中能清楚地分辨出我们正在谈论的是一个完整的通道(带有两端)还是一个通道定义(只有一端)。
消息通道
消息通道定义可以是下列其中一个类型:
消息通道定义类型 | 描述 |
---|---|
发送方 | 发送方通道是队列管理器用来将消息发送至其他队列管理器的消息通道。 要使用发送方通道来发送消息,还必须在另一队列管理器上创建与此发送方通道同名的接收方通道。 如果要实现“回叫”机制,那么还可以将发送方通道与请求方通道配合使用。 |
服务器 | 服务器通道是队列管理器用来将消息发送至其他队列管理器的消息通道。 要使用服务器通道来发送消息,还必须在另一队列管理器上创建与此服务器通道同名的接收方通道。 您还可以将服务器通道与请求方通道配合使用。 在此情况下,在通道另一端的请求方通道定义将请求要启动的服务器通道定义。 服务器会发送消息给请求方。 只要服务器知道对方通道的连接名称,它还可启动通信。 |
接收方 | 接收方通道是队列管理器用来从其他队列管理器接收消息的消息通道。 要使用接收方通道来接收消息,还必须在另一队列管理器上创建与此接收方通道同名的发送方通道或服务器通道。 |
请求者 | 请求方通道是队列管理器用来从其他队列管理器接收消息的消息通道。 请求方通道可以请求启动在远端定义的伙伴通道。 如果伙伴通道是服务器通道,那么服务器通道会接受启动请求,并开始从服务器通道定义中标识的传输队列向请求方通道发送消息。 如果伙伴通道是发送方通道,那么发送方通道会接受启动请求,然后关闭与请求方的连接。 然后,发送方通道开始与伙伴请求方通道协商会话,并开始从发送方通道定义中标识的传输队列发送消息。 后一种情况实质上提供了一种回调机制,其中请求方通道可以请求发送方通道进行回调。 |
集群发送方 | 集群发送方 (CLUSSDR) 通道定义用来定义通道发送端,集群队列管理器可通过它将集群信息发送至其中一个完整存储库。 集群发送方通道用于告知存储库有关队列管理器状态的任何更改,例如,添加或除去队列。 它还用于传输消息。 完整存储库队列管理器自身拥有指向彼此的集群发送方通道。 它们使用这些通道以就集群状态的更改进行相互通信。 队列管理器的 CLUSSDR 通道定义指向哪个完整存储库不是很重要。 在进行了最初的接触之后,会根据需要自动定义更多的集群队列管理器对象,以便队列管理器可将集群信息发送至每个完整存储库并将消息发送至每个队列管理器。 有关更多信息,请参阅 队列管理器集群。 |
集群接收方 | 集群接收方 (CLUSRCVR) 通道定义用来定义通道接收端,集群队列管理器可通过它从集群中的其他队列管理器接收消息。 集群接收方通道还可传送有关集群的信息(发往存储库)。 通过定义集群接收方通道,该队列管理器对其他集群队列管理器表示它可用于接收消息。 每个集群队列管理器至少需要有一个集群接收方通道。 有关更多信息,请参阅 队列管理器集群。 |
对于每个通道,您必须定义两端以便获取通道每一端的通道定义。 通道的两端必须是兼容类型。
您可使用下列通道定义的组合:
- 发送方-接收方
- 服务器-接收方
- 请求方-服务器
- 请求方-发送方(回调)
- 集群发送方-集群接收方
消息通道代理程序
您创建的每个通道定义都属于特定队列管理器。 队列管理器可具有同一类型或不同类型的几个通道。 通道的每一端是一个程序,即消息通道代理程序 (MCA)。 在通道的一端,调用方 MCA 从传输队列获取消息并通过通道发送它们。 在通道的另一端,响应方 MCA 接收这些消息并将它们传递至远程队列管理器。
调用方 MCA 可与发送方通道、服务器通道或请求方通道关联。 响应方 MCA 可与任何类型的消息通道关联。
IBM MQ 支持连接两端的以下通道类型组合:
调用方 | 消息流方向 | 响应方 | ||
---|---|---|---|---|
通道类型 | 需要侦听器吗? | 需要侦听器吗? | 通道类型 | |
发送方 | 否 | 从调用方至响应方 | Yes | 接收方 |
服务器 | 否 | 从调用方至响应方 | Yes | 接收方 |
服务器 | 否 | 从调用方至响应方 | Yes | 请求者 |
请求者 | 否 | 从响应方至调用方 | Yes | 服务器 |
请求者 | Yes | 从响应方至调用方 | Yes | 发送方 |
MQI 通道
MQI 通道可以是下列其中一个类型:
MQI 通道类型 | 描述 |
---|---|
服务器连接 | 服务器连接通道是用于将 IBM MQ 客户机连接到 IBM MQ 服务器的双向 MQI 通道。 服务器连接通道是通道的服务器端。 |
客户机连接 | 客户机连接通道是用于将 IBM MQ 客户机连接到 IBM MQ 服务器的双向 MQI 通道。 IBM MQ Explorer 还使用客户机连接来连接到远程队列管理器。 客户机连接通道是通道的客户机端。 当您创建客户机连接通道时,在主管队列管理器的计算机上创建一个文件。 然后,必须将客户机连接文件复制到 IBM MQ 客户机。 |
![[UNIX、Linux、Windows、IBM i]](ngmulti.gif)
AMQP 通道
只有一种类型的 AMQP 通道。
使用此通道连接 AMQP 消息传递应用程序和队列管理器,从而使该应用程序能够与 IBM MQ 应用程序交换消息。 AMQP 通道允许您使用 MQ Light开发应用程序,然后将其部署为企业应用程序,从而利用 IBM MQ提供的企业级设施。
有关通道的更多信息,请参阅 IBM 文档中的 通道 。