首页 > 代码库 > WebSphere MQ----通道

WebSphere MQ----通道

通道(channel

通道其实是队列管理器之间的一种点对点的通信连接,消息在通道中只能单向流动。如果需要双向交流,可以建立一对通道,一个发送端和一个接受端口。从队列管理器的角度出发通道安消息的流向可以分为输入通道和输出通道。通过配置对于放入本地传输队列中的消息,队列管理器会自动将其通过输出通道发出,送入对方的远程目标队列。

两个队列管理器之间可以有多条通道负责传输不同的内容,这样的设计往往是将不同的优先级消息错开,运行于不同速率的网络连接上。或者即便是所有通道都运行于相同的网络物理连接上,也可以将不同大小的消息传送分开,以免小数据传送被大文件所堵塞。如果多条通道共享一条网络物理连接,通道的速率之和受限与网络速度。这样可以增加传送的并发度但不能增加整体的传送速度。

在通道上可以配置不同的通信协议,这样就使得编程接口与通信协议无关。通道两端的配置必须匹配,且名字相同,要不然无法连通。队列管理器之间的通信是通过配置channel来进行连接的,通道两侧的队列管理器对这个通道的相关参数应该能对应起来,一个通道只能用一种通信协议,但是不同的通道可以有不同的通信协议。所以MQ中的通道对于传输消息来说有着举重若轻的作用。

通道的类型(MQ通道类型属性)约定了通信双方在连接握手协议中的主动和被动放以及应用消息的流向问题。

  • SDR       sender  握手协议的主动方,在MQ中属于消息的发送方

  • RCVR      Receiver 握手协议的被动方,在MQ中属于消息的接收方

  • SVR        Server  在握手协议中可以是主动方也可以是被动方,在MQ中一般是消息的发送方

  • RQSTR      Requester  在握手协议中可以是主动方也可以是被动方,在MQ中通常为消息的接收方。

  • CLNTCONN   Client Connection。在Client-Server连接时,定义客户端连接定义表时使用,握手协议的主动方,消息的发送方。

  • SVRCONN     Server Connection,在Client-Server连接时,定义服务器端连接时使用,握手协议的被动方,消息的接收方

  • CLUSSDR     Cluster Sender 在集群中发送配置信息和应用信息。握手协议的主动方,消息的发送方

  • CLUSRCVR     Cluster Receiver,在集群配置过程中用来接受配置信息和应用信息。握手协议的接收方

通信双方的通道类型配对并不是可以随意配列组合的,共有六种,如图:

技术分享

图中的细线表示握手协议的主动连接方,粗线表示应用消息的流向。消息在所有的通道上都是单向传送的。

  • Sender/Receiver 使所有链接中最简单、最常用的一种。Sender是通道的主动方,也是消息的发送方。

  • Requester/Server 也是常用的一种连接方式。Requester是通道的主动方,但通道连接后它作为消息的接收方,其实Server是消息的发送方。

  • Server/ReceiverSender/Receiver类似,Server是消息的发送方,也是连接的主动方。与Sender定义类似,Server定义中必须指定CONNAME参数。

  • Sender/Requester 的连接过程稍微复杂一些,Requester首先与Sender连接,在通知对方连接参数后连接断开。Sender进行反向连接,消息也是反向传送的,这种反向的连接方式,称为Callback Connection

  • Sender Connection/Receiver Connection Sender/Receiver方式相同。用于Client\Server之间的MQI通道

  • Cluster Sender/Cluster ReceiverSender/Receiver方式相同。用于集群队列管理器之间的连接。


本文出自 “Biztalk中的蜗牛” 博客,请务必保留此出处http://6060579.blog.51cto.com/6050579/1889191

WebSphere MQ----通道