通过这篇文档,我们要演示的是IBM本地队列和远程队列 之间协作关系的验证,所以我们创建队列管理器和队列的时候会成对的进行创建。演示的场景是,客户端 和 节点之间通过IBMMQ通信的过程,所以会创建两个队列队列器QM_CLI(客户端队列管理器),QM_NODE(节点队列管理器)。并分别创建他们的远程和本地队列以及通道。接下来就是详细的步骤:

IBMMQ安装完成后,打开MQ资源管理器,界面如下图

1、新建队列管理器

首先新建QM_CLI

在左侧树形中选中“队列管理器”,右键—>新建—>队列管理器,打开如下界面

录入队列管理器名称,一路点击【下一步】按钮,直到出现如下界面,停下来设置侦听端口

可以使用默认设置,即 1414,这里我们不采用默认的,将端口设置为1412,设置完成后,点击【完成】按钮,完成创建。

注意:此处可能会出现创建失败AM7077的报错,如果有这个错误,请移步:https://blog.csdn.net/qq_39915083/article/details/106878376

完成后,在MQ资源管理器右侧表格中选中刚新建的队列管理器,右键—>属性,出现如下界面:将通道认证关闭

接下来按照相同的步骤,创建QM_NODE。注意也把QM_NODE的通道认证关闭

2、新建传输队列

在MQ资源管理器界面,左侧树形中,展开QM_CLI队列管理器,选中“队列”,右键--新建本地队列,打开如下界面,设置传输队列名称

点击【下一步】,出现如下界面,修改下图中红框圈起的部分

将“使用情况”设置为传输。点击完成。

创建完客户端的传输通道之后按照相同的步骤继续创建节点的传输队列。

3、新建本地队列

在MQ资源管理器界面,左侧树形中,展开队列管理器,选中“队列”,右键--新建本地队列,打开如下界面,设置传输队列名称

点击【下一步】,当【下一步】按钮为灰时,点击【完成】,完成创建。

接下来按照上面的步骤继续创建QL_Node

4、新建远程队列

创建远程队列的时候要用到我们上面创建的队列管理器和队列。所以如果是按照作者步骤创建的,这个时候本地队列和传输队列情况应该是下面这样的

接下来我们按照步骤,创建节点和客户端的远程队列。

在MQ资源管理器界面,左侧树形中,展开队列管理器,选中“队列”,右键--新建远程队列,打开如下界面,设置传输队列名称

点击【下一步】,出现如下界面,设置下图中红框圈起的部分。

其中“远程队列”指定发送到的目的地,也就是发送到的目的机器上用来承接发送过来的数据的队列。也就是对方的本地队列名称

“远程队列管理器”指定上述远程队列所在的队列管理器。

“传输队列”指定数据从该MQ传输到目的机器MQ时使用的传输队列。也就是当前的队里管理器中我们刚刚创建的传输对列。

设置填写完毕之后,点击完成,创建成功。

下面的是 节点 的远程队列配置页面设置情况

 

5、新建服务器连接通道

在MQ资源管理器界面,左侧树形中,展开队列管理器,选中“通道”,右键->新建->服务器连接通道,打开如下界面,设置服务器连接通道名称为CH_SVRCONN_CLI

点击【下一步】按钮,出现如下界面,选择左侧的“MCA”,在右侧设置“MCA用户标识”为:MUSR_MQADMIN

点击【完成】按钮。创建结束。

接下来创建节点的连接通道。名称可设置为  CH_SVRCONN_NODE。

6、新建发送方通道

在MQ资源管理器界面,左侧树形中,展开队列管理器,选中“通道”,右键->新建->发送方通道,打开如下界面,设置发送方通道名称

截图中是客户端的发送方通道。所以命名为CLI2NODE(客户端至节点). 创建节点的发送方通道可命名为 NODE2CLI(节点至客户端). 

点击【下一步】按钮,出现如下界面,设置下图红框圈起的部分。

其中“连接名称”指定发送到的目的机器的ip地址和端口,格式为ip(port)。节点的队列管理器的监听端口是1416。所以配置为1416

“传输队列”含义和新建 远程队列 时设置的传输队列含义相同,选择我们刚才创建的客户端传输队列即可。

点击【完成】按钮,完成创建。

接下来别忘了按照上面的步骤为节点创建发送方通道

7、新建接收通道

在MQ资源管理器界面,左侧树形中,展开队列管理器,选中“通道”,右键->新建->接收方通道,打开如下界面

注:发送方通道名称必须和发送到的目的服务器上的接收通道名称相同。即客户端接收方通道应该等于节点的发送方通道的名称,节点的同理。命名时要注意。

录入接收通道名称,点击【下一步】,直到为灰时,点击【完成】,完成创建。

8、启动发送方通道

如图创建之后,我们的发送通道的状态是不活动的,我们需要启动他。

右键发送方通道名称,点击启动。两个队列管理器的发送方都启动了之后,我们就可以进行测试了。

9、测试

在客户端的远程队列中放入一条测试消息,去节点的本地队列中查看是否有消息

右键远程队列->放入测试消息,打开如下界面

放入消息后,去节点队列管理器的本地队列中查看,发现队列深度为1

右键-->浏览消息,打开如下界面

发现我们消息已经发送过来了。

至此就完成了,IBMMQ本地队列和远程队列协作传递消息的演示步骤。相信大家按照上面的步骤自己配置一遍之后,肯定会有自己的想法和思考,也可以阅读作者的另一篇文章,浅析IBMMQ和rabbitMQ的区别https://blog.csdn.net/qq_39915083/article/details/106334330,相信再次阅读这篇文章就会有更深的理解。

如有什么疑问欢迎大家留言交流

 

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐