WebSphereMQ 队列管理器、队列、通道的理解

一个队列管理器可以有多个队列和多个通道。

队列管理器相当于RabbitMQ中的虚拟主机。

队列分为本地队列,远程队列,传输队列。

通道分为发送通道、接收通道、服务器通道等等。

发送到本地队列上的消息存储在本机上。

发送到远程队列上的消息,通过绑定传输队列传输到别的队列管理器上的本地队列上存储。

通道为消息进出队列的渠道桥梁,发送通道只能出,接收通道只能进,服务器通道可以进出。

本地例子:

发送消息===>Java程序===>服务器通道===>本地队列===>服务器通道===>Python程序===>收到消息

两家公司各自服务器AB例子:

公司A发送消息===>Java程序===>服务器通道A===>远程队列A>>>>传输队列A>>>>发送通道A>>>>接收通道B>>>>本地队列B===>服务器通道B===>Python程序===>公司B收到消息===>响应===>响应消息发送===>Python程序===>服务器通道B===>远程队列B>>>>传输队列B>>>>发送通道B>>>>接收队列A>>>>本地队列A===>服务器通道A===>Java程序===>公司A收到响应消息

 

本地队列:无需绑定任何东西,直接定义声明即可。

#本地队列名称
export QueueName=QUEUE_TEST

#是否持久化
export PERSIST=YES
# NO 该队列上的消息在队列管理器重新启动时丢失。
# YES 该队列上的消息在队列管理器重新启动时保存了下来。

#消息最大深度
export MAXDEPTH=10000

#消息大小
export MAXMSGL=4M
#队列管理器MAXMSGL,默认值:4M,可以调整范围:32K - 100M;
#通道MAXMSGL,默认值:4M,可以调整范围:0-队列管理器MAXMSGL;
#队列MAXMSGL,默认值:4M,可以调整范围:0-队列管理器MAXMSGL;

#描述
export LocalNodeDes=测试队列

#队列管理器名称
export QmgrName

echo "DEFINE QLOCAL($QueueName) LIKE(SYSTEM.DEFAULT.LOCAL.QUEUE) USAGE(NORMAL) REPLACE DEFPSIST($PERSIST) MAXDEPTH($MAXDEPTH) MAXMSGL($MAXMSGL) DESCR('$LocalNodeDes')"|runmqsc $QmgrName

服务器通道:主要给java、C、python等程序访问收发数据,也无需绑定任何东西,直接声明。

#通道名称
export ChannelName=DC.SVRCONN

#协议类型
export TRPTYPE=TCP

#授权用户
export MqmUsr=mqm

#消息大小
export MAXMSGL=4M
#队列管理器MAXMSGL,默认值:4M,可以调整范围:32K - 100M;
#通道MAXMSGL,默认值:4M,可以调整范围:0-队列管理器MAXMSGL;
#队列MAXMSGL,默认值:4M,可以调整范围:0-队列管理器MAXMSGL;


echo "DEFINE CHANNEL($ChannelName) CHLTYPE(SVRCONN) TRPTYPE($TRPTYPE) MCAUSER('$MqmUsr') MAXMSGL($MAXMSGL) REPLACE"|runmqsc $QmgrName

接收通道:

echo "DEFINE CHANNEL($ReceiverChannel) CHLTYPE(RCVR) TRPTYPE($TRPTYPE) REPLACE MAXMSGL($MAXMSGL) HBINT($HBINT) NPMSPEED(NORMAL) MSGEXIT ('$RCVRMSGEXIT') SSLPEER('$SSLPEER') DESCR('To Tips System Online receive Message Channel')"|runmqsc $QmgrName
	

发送通道:需绑定接收方队列管理器所在的主机地址和开放的监听端口,并绑定相应的传输队列。

echo "DEFINE CHANNEL($SendChannel) CHLTYPE(SDR) CONNAME('$RemoteHostName($RemoteHostPort)') LOCLADDR('$LOCLADDR') XMITQ('$TransportQueue') TRPTYPE($TRPTYPE) REPLACE MAXMSGL($MAXMSGL) DISCINT($DISCINT) HBINT($HBINT) SHORTTMR($SHORTTMR) NPMSPEED(NORMAL) MSGEXIT ('$SDRMSGEXIT') SSLPEER('$SSLPEER') DESCR('To Tips System Online Send Message Channel')"|runmqsc $QmgrName
	

传输队列:需绑定相应的发送通道

echo "DEFINE QLOCAL($TransportQueue) LIKE(SYSTEM.DEFAULT.LOCAL.QUEUE) USAGE(XMITQ) REPLACE DEFPSIST(NO) MAXDEPTH($MAXDEPTH) MAXMSGL($MAXMSGL) TRIGGER TRIGTYPE(FIRST) INITQ(SYSTEM.CHANNEL.INITQ) TRIGDATA($SendChannel) TRIGDPTH(1) DESCR('To Tips System Online Transfer Queue')"|runmqsc $QmgrName

远程队列:需绑定相应的传输队列

echo "DEFINE QREMOTE($RemoteQueue) LIKE(SYSTEM.DEFAULT.REMOTE.QUEUE) RNAME('L.$RemoteNodeCode.$AreaNodeCode') RQMNAME('QM_SZZHCZ_1_'$RemoteNodeCode'_01') XMITQ($TransportQueue) DEFPSIST(YES) DESCR('$RemoteNodeDes') REPLACE"|runmqsc $QmgrName

 

  • 5
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值