IBM MQ简介

IBM MQ share

1.什么是MQ

MQ(Message Queue)消息队列,是基础数据结构中“先进先出”的一种数据结构。一般用来解决应用解耦,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构。主要产品:RabbitMQ、ActiveMQ、RocketMQ、ZeroMQ、Kafka、IBM MQ

2.IBM MQ简介

    队列(queue):我们可以简单地把队列看成一个容器,用于存放消息。

    队列管理器(Qmanager):队列管理器构建了独立的 MQ 的运行环境,它是消息队列的管理者,用来维护和管理消息队列。

    消息:MQ中的最小对象;默认情况下,消息缺省可以达到 4MB。消息可以分成持久消息和非持久消息。所 谓“持久”的 意思,就是在MQ 队列管理器重启动后,消息是否仍然能保持。持久的消息写入或读出队列的同时会在 Log 中记录,所以性能上比非持久消息差不少。

    通道(channel):通道则是两个队列管理器之间的一种单向的点对点的通信连接, 消息在通道中只能单向流动。队列管理器之间的通信是通过配置通道来实现 的,通道两侧的队列管理器对这个通道的相关参数应该能对应起来。在通道上可以配置不同的通信协议,这样就使得编程接口与通信协议无关。通道两端的 配置必须匹配, 且名字相同,否则无法连通。

    RUNMQSC:命令行交互界面管理工具;作为维护人员的我们,与MQ打交道有两种方式,一种是通过MQ提供的二进制命令工具(在mq安装目录的bin目录下),另一种方式则是通过命令行交互管理工具;这二者在功能上有很多是重合的,但并非完全可替代;RUNMQSC是一个通用的 MQ 对象管理工具,使用MQSC命令集可以对 MQ 对象进行;全方位的管理,也是各种管理方式最直接、最全面的一种。RUNMQSC 运行的命令集称MQSC (MQ Script Command)";在 RUNMQSC 中大小写无关,所有的命令会先转换成全大写再提交执行。所以如果要 表示大小相关的字串,比如对象名,则用引号将字串包住。输入以下命令启动MQSC命令:runmqsc[queueManagerName]

3.MQ 常用命令

查看队列的属性

runmqsc QM

dis queue(qname) all

显示所有队列

display queue(*)

清理队列内容

clear ql(qname)

查看当前所有连接

display conn(*) where(objname eq qname) all

关闭connection

stop conn(conn NO)

查看MQ版本

dspmqver

查看队列深度

display queue() curdepth

清除队列消息

clear ql(Q_SVC2ADP_4_HTTP)

查看远程连接

display qremote (*)

4. 查看队列管理器运行状态

# dspmq

显示结果中QMNAME表示MQ队列管理器的名称,STATUS表示当前运行状态。

运行状态有如下几种:

        Starting    正在启动

        Running    正在运行

        Ending    正在停止

        Ended normally  已经正常终止

        Ended immediately  已经立即终止

        Ended preemtively  已经强制终止

        Ended unexpectively 异常终止

        注:停止MQ后建议使用dspmq命令进行状态检查是否成功关闭。

5. 查看通道运行状态与启停通道

$ runmqsc QmgrName

dis chl(*);     查看所有通道定义

dis chs(*);     查看所有通道状态,如果没有查询到通道状态,或报错AMQ8420: Channel Status not found,请启动通道

dis chs(ChannelName);  查看通道ChannelName的状态

通道状态有如下几种:

        STARTING  正在启动

        BINDING    正在绑定

        INITIALIZING  正在初始化

        RUNNING   正常

        STOPPING 正在停止

        RETRYING  重试

        PAUSED  等待

        STOPPED 已停止

        REQUESTING  请求

启停通道与重置通道序号的方法:

$ runmqsc QmgrName

start chl(ChannelName);  启动通道

stop chl(ChannelName);  停止通道

6. 查看队列深度

如果队列深度不断增加,不见减少,那么可能就有问题了,请检查并分析其原因。

$runmqsc QmgrName

dis q(*);    查看所有各类队列的属性

dis qlocal(QName);   查看所有本地队列的属

队列深度属性为:CURDEPTH

7.日志路径

1.整个MQ的错误日志

/../mqm下面的errors

2.单个QM下面的日志

/var/mqm/qmgrs/AMQ01OD1/errors


版权声明:本文为Hemajun1115原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。