IBM MQ入门
IBM WMQ
1.技术介绍
1.1. 总体介绍
消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过写和检索出入列队的针对应用程序的数据(消息)来通信,而无需专用连接来链接它们。消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求。
IBM WebSphere MQ 产品支持应用程序通过不同组件如处理器、子系统、操作系统以及通信协议的网络彼此进行通信。例如,IBM WebSphere MQ 支持35 种以上的不同操作系统。IBM WebSphere MQ 支持两种不同的应用程序编程接口:
Java 消息服务(JMS)和消息队列接口(MQI)。
在IBM WebSphere MQ 服务器上,JMS 绑定方式被映射到MQI。如图所示,应用程序直接与其本地队列管理器通过使用MQI 进行对话,MQI 是一组要求队列管理器提供服务的调用。MQI 的引人之处是它只提供13 次调用。这意味着对于应用程序编程员它是一种非常易于使用的接口,因为大部分艰苦工作都将透明完成的。
1.2. 术语定义
2.安装
2.1. 下载
最新版本:7.0.1.3
有多个版本:linux_32,linux_64,linux_win
2.2. 硬件环境
2.3. 安装
上传文件到相关目录,
1.解压文件
CZJ3YML.tar.gz
3.安装
安装后会自动创建系统用户及用户组:mqm 程序安装目录:/opt/mqm
数据相关目录:/var/mqm
Java相关jar包:/opt/mqm/java/lib
4.更改mqm用户密码
后续操作用mqm用户操作
2.4. 卸载
1.用root帐号登录系统
2.停止所有队列管理器
//查看正在运行的队列管理器
dspmq
//停止所有跟队列管理器相关的监听程序,注意:QueueManagerName是队列队列管理器名称,具体名称用命令dspmq查询
endmqlsr -m QueueManagerNam e
//停止所有正在运行的队列管理器
endmqm QueueManagerName
3. //确认所有跟MQ有关的进程都已经停止
ps -ef | grep mq
4.//查看安装了那些相关的包
rpm -q -a | grep MQSeries
//一次性删除所有安装的包,以下命令只是一个示例,命令后面的包名称是命令“rpm -q -a | grep MQSeries” //查询所得的所有包名称,包名之间用空格分隔,
rpm -ev MQSeriesRuntime-6.0.0-0 MQSeriesServer-6.0.0-0 MQSeriesServer-6.0.0-0
5.删除用户
userdel mqm
6.删除文件
rm -rf /opt/mqm/
rm -rf /var/mqm/
7.重启主机
2.5. 重新启动MQ
1、切换到mqm用户
2、启动队列管理器
3、启动服务
启动命令服务器:非必须
启动侦听器:
验证队列管理器和侦听器在两台计算机上运行,然后启动通道:
3.配置
配置过程包括以下几个步骤:
1.创建队列管理器。
2.启动队列管理器。
3.创建队列和通道:可以命令方式,也可文件方式。
4.启动命令服务器、侦听器和通道。
3.1. 简单配置
2.启动队列管理器
3.创建队列和通道
进入队列处理器
创建通道
HW_ALARM.Q
创建队列SJ_ALARM.Q
CS_ALARM.Q
4.启动服务
启动命令服务器:非必须
启动侦听器:
验证队列管理器和侦听器在两台计算机上运行,然后启动通道:
3.2. 接收端
5.创建队列管理器
7.创建队列和通道
编辑如下文件WMQ1QM.conf:
执行命令:
WMQ1QM:为队列管理器名字,< WMQ1QM.conf 为命令,> qcreate.log 为输出结果
8.启动服务
启动命令服务器:非必须
启动侦听器:
验证队列管理器和侦听器在两台计算机上运行,然后启动通道:
3.3. 发送端
3.创建队列和通道
编辑如下文件WMQ2QM.conf:
执行命令:
WMQ2QM:为队列管理器名字,< WMQ2QM.conf 为命令,> qcreate.log 为输出结果
4.启动服务
需要启动命令服务器:必必须
需要启动侦听器
验证队列管理器和侦听器在两台计算机上运行,然后启动通道:
4.JA V A-MQI开发
用于将消息放入队列中(MQSend) 和从队列获取消息(MQGet) 的示例Java 应用程序可使用前面部分中定义的队列。这些应用程序支持String 消息,旨在用于测试和作为说明如何从Java 应用程序使用WebSphere MQ 的示例。可以从脚本使用应用程序,包括各种类型的应用程序。MQSend 和MQGet 都从MQConnector 类进行扩展,该类可提供WebSphere MQ 连接、初始化WebSphere MQ、打开和关闭队列,向队列发送消息及从队列接收消息。
4.1. 配置文件
需要加载相关类,目录:/opt/mqm/java/lib
环境变量:/etc/profile
4.2. M QConnector
MQConnector 是用于进行发送和获取操作的超类。该类处理打开连接和发送及获取消息的工作。将使用属性文件对其进行配置,需要在属性文件中指定主机地址、队列管理器名称和队列名称:
代码
4.3. M QSend
向队列发送消息的命令行程序
代码
发送脚本put
4.4. M QGet
从指定的队列检索消息配置文件
代码
发送脚本get
4.5. 测试
5.C++开发5.1. 配置文件