通过这篇文档,我们要演示的是IBM本地队列和远程队列 之间协作关系的验证,所以我们创建队列管理器和队列的时候会成对的进行创建。演示的场景是,客户端和节点之前进行通过IBMMQ通信的过程,所以会创建两个队列队列器QM_CLI(客户端队列管理器),QM_NODE(节点队列管理器)。并分别创建他们的远程和本地队列。接下来就是详细的步骤:
IBMMQ安装完成后,打开MQ资源管理器,界面如下图
首先新建QM_CLI
在左侧树形中选中“队列管理器”,右键—>新建—>队列管理器,打开如下界面
录入队列管理器名称,一路点击【下一步】按钮,直到出现如下界面,停下来设置侦听端口
可以使用默认设置,即 1414,这里我们不采用默认的,将端口设置为1412,设置完成后,点击【完成】按钮,完成创建。
注意:此处可能会出现创建失败AM7077的报错,如果有这个错误,请移步:https://blog.csdn.net/qq_39915083/article/details/106878376
完成后,在MQ资源管理器右侧表格中选中刚新建的队列管理器,右键—>属性,出现如下界面:将通道认证关闭
之后按照相同的步骤,创建QM_NODE。注意也把QM_NODE的通道认证关闭
按照下面的步骤依次创建客户端和节点的传输队列QXCli 和 QXNode
在MQ资源管理器界面,左侧树形中,展开队列管理器,选中“队列”,右键--新建本地队列,打开如下界面,设置传输队列名称
点击【下一步】,出现如下界面,修改下图中红框圈起的部分
将“使用情况”设置为传输。点击完成。
按照面的步骤依次创建QL_Cli、 QL_Node
在MQ资源管理器界面,左侧树形中,展开队列管理器,选中“队列”,右键--新建本地队列,打开如下界面,设置传输队列名称
点击【下一步】,当【下一步】按钮为灰时,点击【完成】,完成创建。
创建远程队列的时候回用到我们上面创建的队列管理器和队列。所以如果是按照作者步骤创建的,这个时候应该是这样的
接下来我们按照步骤,创建节点和客户端的远程队列。
在MQ资源管理器界面,左侧树形中,展开队列管理器,选中“队列”,右键--新建远程队列,打开如下界面,设置传输队列名称
点击【下一步】,出现如下界面,设置下图中红框圈起的部分。
其中“远程队列”指定发送到的目的地,也就是发送到的目的机器上用来承接发送过来的数据的队列。也就是对方的本地队列名称
“远程队列管理器”指定上述远程队列所在的队列管理器。
“传输队列”指定数据从该机器MQ传输到目的机器MQ时使用的传输队列。
对于这个地方的配置如果有什么疑问的话,可以观看博主写的另一篇关于IBMMQ和rabbitMQ区别的文章中介绍了,本地队列和远程队列的关系:https://blog.csdn.net/qq_39915083/article/details/106334330
下面的是节点的远程队列定义
在MQ资源管理器界面,左侧树形中,展开队列管理器,选中“通道”,右键->新建->服务器连接通道,打开如下界面,设置服务器连接通道名称.节点的连接通道名称可设置为 CH_SVRCONN_NODE
点击【下一步】按钮,出现如下界面,选择左侧的“MCA”,在右侧设置“MCA用户标识”为:MUSR_MQADMIN
点击【完成】按钮。
在MQ资源管理器界面,左侧树形中,展开队列管理器,选中“通道”,右键->新建->发送方通道,打开如下界面,设置发送方通道名称
截图中是客户端的发送方通道。所以命名为CLI2NODE(客户端至节点). 节点的发送方通道命名为 NODE2CLI(节点至客户端).
点击【下一步】按钮,出现如下界面,设置下图红框圈起的部分。
其中“连接名称”指定发送到的目的机器的ip地址和端口,格式为ip(port)。节点的队列管理器的监听端口是1416。所以配置为1416
“传输队列”含义和新建远程队列时设置的传输队列含义相同,选择一个传输队列即可。
点击【完成】按钮,完成创建。
接下来别忘了按照上面的步骤为节点创建发送方通道
在MQ资源管理器界面,左侧树形中,展开队列管理器,选中“通道”,右键->新建->接收方通道,打开如下界面
注:发送方通道名称必须和发送到的目的服务器上的接收通道名称相同。即客户端接收方通道应该等于节点的发送方通道的名称,节点的同理。命名时要注意。
录入接收通道名称,点击【下一步】,直到为灰时,点击【完成】,完成创建。
如图创建之后,我们的发送通道的状态是不活动的,我们需要启动他。
右键发送方通道名称,点击启动。两个队列管理器的发送方都启动了之后,我们就可以进行测试了。
在客户端的远程队列中放入一条测试消息,去节点的本地队列中查看是否有消息
右键远程队列->放入测试消息,打开如下界面
放入消息后,去节点队列管理器的本地队列中查看,发现队列深度为1
右键-->浏览消息,打开如下界面
发现我们消息已经发送过来了。
至此就完成了,IBMMQ本地队列和远程队列协作传递消息的演示步骤。相信大家按照上面的步骤自己配置一遍之后,肯定会有自己的想法和思考,也可以阅读作者的另一篇文章,浅析IBMMQ和rabbitMQ的区别https://blog.csdn.net/qq_39915083/article/details/106334330,相信再次阅读这篇文章就会有更深的理解。
如有什么疑问欢迎大家留言交流