IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> IBM MQ 搭建测试环境并测试消息的发送和接收 -> 正文阅读

[系统运维]IBM MQ 搭建测试环境并测试消息的发送和接收

一,说明

MQ基于Linux环境的安装比较简单,读者可以去网上自行搜索。

本文主要在于MQ队列管理器相关的部分。

OS Version: Red Hat Enterprise Linux Server release 6.7 (Santiago)

MQ Version: WebSphere MQ ?7.0.1.3

两台服务器分别安装MQ基础软件。

二,创建队列管理器

2.1 架构图:

上面这个图借鉴了某位仁兄的,我也不知道哪里来的了,只是以前存储在我自己的电脑里了。画得明白清晰。

我的两台OS IP地址分别为:192.168.88.7/192.168.88.9

队列管理器说明:

队列管理器QM1(192.168.88.7):TEST_QM
队列管理器QM2(192.168.88.9):TEST_RQM

2.2 创建命令:???????

队列管理器QM1:TEST_QM

队列名

队列属性

?命令

DATA

本地队列

define qlocal(DATA)

REMOTE.DATA.R

远程队列

指向队列:DATA.R?? 指向队列管理器:TEST_RQM

define qremote(REMOTE.DATA.R) rname(DATA.R) rqmname(TEST_RQM) xmitq(TEST.R)

TEST.R

传输队列

define qlocal(TEST.R) usage(xmitq)

创建对TEST_RQM的监听:define listener(DATA.LISTENER) trptype(tcp) control(qmgr) port(1417)

创建发送方通道:define channel(TO.TEST.R) chltype(sdr) conname('127.0.0.1(1418)') xmitq(TEST.R) trptype(tcp)

创建接收方通道:define channel(TO.TEST) chltype(rcvr) trptype(tcp)

队列管理器QM2:TEST_QM2

队列名

队列属性

?命令

DATA.R

本地队列

define qlocal(DATA.R)

REMOTE.DATA

远程队列

指向队列:DATA???? 指向队列管理器:TEST_QM

define qremote(REMOTE.DATA) rname(DATA) rqmname(TEST_QM) xmitq(TEST)

TEST

传输队列

define qlocal(TEST) usage(xmitq)

创建对TEST_QM的监听:define listener(DATA.LISTENER) trptype(tcp) control(qmgr) port(1418)

创建发送方通道:define channel(TO.TEST) chltype(sdr) conname('127.0.0.1(1417)') xmitq(TEST) trptype(tcp)

创建接收方通道:define channel(TO.TEST.R) chltype(rcvr) trptype(tcp)

注意事项:

1. QM1和QM2的通道名称要一致,当然QM1和QM2可以互为发送方,因此本例中有两条通道;

2. QM1的监听端口号要与QM2的通道端口一致,如果QM2到QM1有多条发送通道,那QM1要相应匹配地创建相同数目的监听。

创建命令分别在两台不同的服务器上执行:

服务器1?192.168.88.7:

-bash-4.1$ crtmqm -q TEST_QM
WebSphere MQ queue manager created.
Directory '/var/mqm/qmgrs/TEST_QM' created.
Creating or replacing default objects for TEST_QM.
Default objects statistics : 65 created. 0 replaced. 0 failed.
Completing setup.
Setup completed.

启动队列管理器:

-bash-4.1$ strmqm
WebSphere MQ queue manager 'TEST_QM' starting.
5 log records accessed on queue manager 'TEST_QM' during the log replay phase.
Log replay for queue manager 'TEST_QM' complete.
Transaction manager state recovered for queue manager 'TEST_QM'.
WebSphere MQ queue manager 'TEST_QM' started.

创建队列等:

-bash-4.1$ runmqsc
5724-H72 (C) Copyright IBM Corp. 1994, 2009. ?ALL RIGHTS RESERVED.
Starting MQSC for queue manager TEST_QM.
define qlocal(DATA)
? ? ?1 : define qlocal(DATA)
AMQ8006: WebSphere MQ queue created.
define qremote(REMOTE.DATA.R) rname(DATA.R) rqmname(TEST_RQM) xmitq(TEST.R)
? ? ?2 : define qremote(REMOTE.DATA.R) rname(DATA.R) rqmname(TEST_RQM) xmitq(TEST.R)
AMQ8006: WebSphere MQ queue created.
define qlocal(TEST.R) usage(xmitq)
? ? ?3 : define qlocal(TEST.R) usage(xmitq)
AMQ8006: WebSphere MQ queue created.
define listener(DATA.LISTENER) trptype(tcp) control(qmgr) port(1417)
? ? ?4 : define listener(DATA.LISTENER) trptype(tcp) control(qmgr) port(1417)
AMQ8626: WebSphere MQ listener created.
define channel(TO.TEST.R) chltype(sdr) conname('192.168.88.9(1418)') xmitq(TEST.R) trptype(tcp)
? ? ?5 : define channel(TO.TEST.R) chltype(sdr) conname('192.168.88.9(1418)') xmitq(TEST.R) trptype(tcp)
AMQ8014: WebSphere MQ channel created.
define channel(TO.TEST) chltype(rcvr) trptype(tcp)
? ? ?6 : define channel(TO.TEST) chltype(rcvr) trptype(tcp)
AMQ8014: WebSphere MQ channel created.

重启MQ:

-bash-4.1$ endmqm TEST_QM
WebSphere MQ queue manager 'TEST_QM' ending.
-bash-4.1$ strmqm
WebSphere MQ queue manager 'TEST_QM' starting.
5 log records accessed on queue manager 'TEST_QM' during the log replay phase.
Log replay for queue manager 'TEST_QM' complete.
Transaction manager state recovered for queue manager 'TEST_QM'.
WebSphere MQ queue manager 'TEST_QM' started.
?

服务器2 192.168.88.9???????:

???????-bash-4.1$ crtmqm -q TEST_RQM
WebSphere MQ queue manager created.
Directory '/var/mqm/qmgrs/TEST_RQM' created.
Creating or replacing default objects for TEST_RQM.
Default objects statistics : 65 created. 0 replaced. 0 failed.
Completing setup.
Setup completed.

启动队列管理器:

-bash-4.1$ strmqm
WebSphere MQ queue manager 'TEST_RQM' starting.
5 log records accessed on queue manager 'TEST_RQM' during the log replay phase.
Log replay for queue manager 'TEST_RQM' complete.
Transaction manager state recovered for queue manager 'TEST_RQM'.
WebSphere MQ queue manager 'TEST_RQM' started.
创建队列等:

-bash-4.1$ runmqsc
5724-H72 (C) Copyright IBM Corp. 1994, 2009. ?ALL RIGHTS RESERVED.
Starting MQSC for queue manager TEST_RQM.???????
define qlocal(DATA.R)
? ? ?1 : define qlocal(DATA.R)
AMQ8006: WebSphere MQ queue created.
define qremote(REMOTE.DATA) rname(DATA) rqmname(TEST_QM) xmitq(TEST)
? ? ?2 : define qremote(REMOTE.DATA) rname(DATA) rqmname(TEST_QM) xmitq(TEST)
AMQ8006: WebSphere MQ queue created.
define qlocal(TEST) usage(xmitq)
? ? ?3 : define qlocal(TEST) usage(xmitq)
AMQ8006: WebSphere MQ queue created.
define listener(DATA.LISTENER) trptype(tcp) control(qmgr) port(1418)
? ? ?4 : define listener(DATA.LISTENER) trptype(tcp) control(qmgr) port(1418)
AMQ8626: WebSphere MQ listener created.
define channel(TO.TEST) chltype(sdr) conname('192.168.88.7(1417)') xmitq(TEST) trptype(tcp)
? ? ?5 : define channel(TO.TEST) chltype(sdr) conname('192.168.88.7(1417)') xmitq(TEST) trptype(tcp)
AMQ8014: WebSphere MQ channel created.
define channel(TO.TEST.R) chltype(rcvr) trptype(tcp)
? ? ?6 : define channel(TO.TEST.R) chltype(rcvr) trptype(tcp)
AMQ8014: WebSphere MQ channel created.
重启MQ:

-bash-4.1$ dspmq
QMNAME(qm1) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? STATUS(Ended unexpectedly)
QMNAME(QMEMBFE) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? STATUS(Ended unexpectedly)
QMNAME(qm_test1) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?STATUS(Ended normally)
QMNAME(XSMS) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?STATUS(Ended unexpectedly)
QMNAME(QM_ORANGE) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? STATUS(Ended normally)
QMNAME(venus.queue.manager) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? STATUS(Ended normally)
QMNAME(TEST_RQM) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?STATUS(Running)
-bash-4.1$ endmqm TEST_RQM
Quiesce request accepted. The queue manager will stop when all outstanding work
is complete.
-bash-4.1$ endmqm TEST_RQM
WebSphere MQ queue manager 'TEST_RQM' ending.

-bash-4.1$ strmqm?
WebSphere MQ queue manager 'TEST_RQM' starting.
5 log records accessed on queue manager 'TEST_RQM' during the log replay phase.
Log replay for queue manager 'TEST_RQM' complete.
Transaction manager state recovered for queue manager 'TEST_RQM'.
WebSphere MQ queue manager 'TEST_RQM' started.


三,测试

3.1 启动通道

为了方便直观,?我使用图形工具(IBM MQ Explorer)来启动的。当然也可以通过命令行的方式去启动通道。

3.2 测试消息的发送和接收,方法1,图形化:

结合2.1的架构图,在队列管理器QM1上,将测试的消息放到REMOTE.DATA.R远程队列,数据流应该是这样:

放消息到发送方的远程队列(REMOTE.DATA.R)-->传输队列(TEST.R)-->发送方通道(TO.TEST.R)-->网络-->接收方通道(TO.TEST.R)-->接收方本地队列(DATA.R)

在192.1688.7上放消息:

?然后再192.168.88.9上查看消息:

测试完成。

反之,我在192.168.88.9上也可以发送消息到88.7上的队列上:

?3.3?测试消息的发送和接收,方法2,命令行:

???????尝试从88.7发送消息到88.9:

登录88.7:
cd /opt/mqm/samp/bin

使用amqsput命令发送消息

命令格式:amqsput ?QueueName [QueueManagerName] ?

详细命令参考官方文档:

IBM Documentation

-bash-4.1$ ./amqsput REMOTE.DATA.R TEST_QM
Sample AMQSPUT0 start
target queue is REMOTE.DATA.R
Goya send message from 88.7 to 88.9, firt one message!!!!

Sample AMQSPUT0 end
注意:敲两次“回车”键输入消息结束。

登录88.9:

查看消息:

查看队列管理器TEST_RQM中名为DATA.R的队列:
-bash-4.1$ ./amqsbcg DATA.R TEST_RQM

当然,也可以使用amqsget命令接收消息消息:

?MQDISC-bash-4.1$ ./amqsget DATA.R TEST_RQM

?至此,MQ消息的方式和接收功能测试完成。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-10-31 12:39:36  更:2022-10-31 12:43:31 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 18:16:44-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码