MQ知识培训
Ver0.91
一、MQ基本知识介绍
MQ是IBM的消息中间件,主要为不同平台或软件提供可靠、异步、不重复的消息传送。而且它支持多种通讯协议,在MQ网关的支持下,也能实现网络间的传输。
现在MQSeries已经作为IBM的Websphere产品的一部分,称为Websphere MQ。
1、Messages(消息)
消息就是一系列字节,为各种应用程序所使用。对于MQ而言,Message(消息)包括2部分,应用程序写入的消息数据部分以及MQ增加的消息描述部分。这部分描述主要包括一些优先级、目的队列。目的队列管理器、报告等的属性值
2、Queue(队列)
队列就是存放消息的一个数据结构。程序或队列管理器可从队列取出、放入消息。通常可以定义队列存放的最大的消息数目、每条消息的最大长度。还可以定义该队列是否允许取出或放入消息。
队列可分为本地队列(local queue)、远程队列(remote queue)和传输队列(transmit queue)。
本地队列是指队列实体存在于本地的队列管理器内的。
远程队列是指队列实体存在于别的队列管理器内的。
传输队列则是一种特殊的本地队列,其用途主要为不同队列管理器间的通讯提供一个消息存放的实体。
3、Queue Manager(队列管理器)
队列管理器就是为外部的应用提供队列服务以及管理本地队列及消息发送的控制等。
4、Channel(通道)
通道为队列管理器提供了通讯的基础,现在可分两种通道:消息通道和MQI通道。
消息通道为两个队列管理器间提供通讯的基础。
MQI通道主要为MQClient端提供访问MQServer的通讯基础。
二、MQ基本操作
1、建立侦听端口
在WINDOWS下面可以定义自动启动队列侦听器。
用命令行(可在多种系统下通用)的方式为:
runmqlsr –t 协议名–m 队列管理器名–p 侦听端口
一般默认端口为1414。
2、建立队列管理器间的消息通道
双方各建立一发送方通道与接收方通道。需要注意的是发送方通道的名字需要与对方接收方通道的名字一样。如:
队列管理器A,有发送方通道A.B、接收方通道B.A
则队列管理器B需要定义如下:发送方通道B.A、接收方通道A.B
另,如果对方管理器的侦听端口不是默认端口(1414),则建立发送方通道的时候在连接名称不仅需要填上对方的主机名(或IP地址)还需要以带(port)的形式把对方管理器的侦听端口填上。
如:winserver(50000)则表示连接到winserver这台主机侦听端口为50000的队列管理器上。注:如果需要建立一个永久连接则需要把心跳间隔的时间定为0,否则一定时间内没消息发送的话,队列管理器会自动断开连接的。
3、建立远程队列实现消息的传送
在建立好消息通道后就可以建立远程队列指定对方的管理器名与对方的队列名。
注:在定义发送方通道的时候需要指定一个传输队列。而定义远程队列的时候也需要指定一个传输队列。必须注意此2个队列的一致性,否则可能把消息发送到不同的队列管理器上了。
三、命令行下的操作
1、启动队列管理器
strmqm 队列管理器名
2、停止队列管理器
endmqm 队列管理器名
3、创建队列管理器
crtmqm 队列管理器名
4、删除队列管理器
dltmqm 队列管理器名
5、进入MQSC管理模式
runmqsc 队列管理器名
6、启动侦听端口
runmqlsr –t 协议名–p 端口–m 队列管理器名