ibm mq 8.0 怎样打开命令控制台

ibm mq 8.0 怎样打开命令控制台,第1张

这个例子的目的是建立可以实现消息传递的一对MQ服务器,它们分别基于NT和UNIX平台。
运行MQ控制台命令
runmqsc QM_NT
运行MQ控制台命令
runmqsc QM_UNIX

:MQ 是应用层协议,TCP是网络层协议。他们不在一个层次。 MQ可以用TCP实现,也可以用UDP实现。 MQ的原理是基于消息的通信方式,Message Queue消息队列。 而消息队列一般都有API可以直接用,不用自己重新实现。

1、队列管理器需要定义一个用于连接队列管理器的服务器连接通道。与53版本不同的是,这个通道不一定是SYSTEMADMINSVRCONN。该通道的名字可以随意定义,在设置远程管理的时候在 WebSphere MQ 资源管理器中指定即可。需要注意的是,启动WebSphere MQ 资源管理器的机器上的当前用户可能没有访问队列管理器对象的权限,导致 MQ 资源管理器无法管理远程队列管理器。简单的方法是在定义服务器连接通道的时候设置该通道的 MCAUSER 属性为mqm组中的用户。
DEFINE CHANNEL(SYSTEMADMINSVRCONN) CHLTYPE(SVRCONN) TRPTYPE(TCP) MCAUSER(单引号mqm单引号)
(郁闷啊,单引号居然会被转掉,记住上面要用单引号)
2、队列管理器需要定义一个名为 SYSTEMMQEXPLORERREPLYMODEL 的临时模型队列以和MQ 资源管理器通信:
DEFINE QM(SYSTEMMQEXPLORERREPLYMODEL) DEFTYPE(TEMPDYN)
3、队列管理器需要启动命令服务器
strmqcsv <QMNAME>
4、队列管理器需要启动侦听:
DEFINE LISTENER(TCPLSTENER) TRPTYPE(TCP) PORT(1414)
START LISTENER(TCPLISTENER)
如果远程队列管理器是在Windows下用图形界面建立的,则1、2、3步都已经默认做好了。只需要做第4步即可
完成以上步骤后,就可以在 MQ 资源管理器中按照下面步骤连接队列管理器:
1、打开 WebSphere MQ 资源管理器;右键点击队列管理器导航器中的队列管理器文件夹,选择“显示/隐藏队列管理器”:
2、在d出的“显示/隐藏队列管理器”对话框中选择“添加”按钮:
3、在“添加队列管理器”对话框中选择直接连接,并输入队列管理器名称(一定要和远程队列管理器名称一致),然后点击下一步:
4、填入主机名或 IP 地址、队列管理器侦听端口、以及服务器连接通道,然后点击完成即可。
间接接连接设置步骤
WebSphere MQ 资源管理器不但可以通过直接连接管理远程队列管理器,还可以通过队列管理器间接管理一个队列管理器。其基本原理为:作为间接队列管理器的队列管理能将消息路由自动到目标队列管理器。其设置方法如下:
仍然延续前面的例子,我们将实现MQ 资源管理器对与 ERPQM1 在同一台机器的另外一个队列管理器 ERPQM2 的远程管理。
1、在队列管理器 ERPQM2 上进行如下设置:
/ 定义/启动侦听 /
DEF LISTENER(TCPLISTENER) TRPTYPE(TCP) PORT(1415)
START LISTENTER(TCPLISTENER)
/ 定义与ERPQM1 同名的传输队列 /
DEF QL(ERPQM1) USAGE(XMITQ) TRIGGER TRIGTYPE(FIRST) INITQ(SYSTEMCHANNELINITQ) TRIGDATA(QM2TOQM1)
/ 定义ERPQM2 到 ERPQM1 的发送通道/
DEF CHANNEL(QM2TOQM1) CHLTYPE(SDR) TRPTYPE(TCP) CONNAME(9181159231) XMITQ(ERPQM1)
/ 定义ERPQM1 到 ERPQM2 的接收通道/
DEF CHANNEL(QM1TOQM2) CHLTYPE(RCVR) TRPTYPE(TCP)
2、在队列管理器 ERPQM1 上进行如下设置:
/ 定义与目标队列管理器同名的传输队列 /
DEF QL(ERPQM2) USAGE(XMITQ) TRIGGER TRIGTYPE(FIRST) INITQ(SYSTEMCHANNELINITQ) TRIGDATA(QM1TOQM2)
/ 定义ERPQM1 到 ERPQM2 的发送通道/
DEF CHANNEL(QM1TOQM2) CHLTYPE(SDR) TRPTYPE(TCP) CONNAME('9181159231(1415)') XMITQ(ERPQM2)
/ 定义ERPQM1 到 ERPQM2 的接收通道/
DEF CHANNEL(QM2TOQM1) CHLTYPE(RCVR) TRPTYPE(TCP)
3、启动队列管理器 ERPQM2 的命令服务器:
strmqcsv ERPQM2
配置远程管理:
1、打开 WebSphere MQ 资源管理器;右键点击队列管理器导航器中的队列管理器文件夹,选择“显示/隐藏队列管理器”:
2、在d出的“显示/隐藏队列管理器”对话框中选择“添加”按钮:
3、在“添加队列管理器”对话框中选择“使用中间队列管理器进行连接”,并输入队列管理器名称,然后点击下一步:
4、在中间队列管理器下拉选项中选择 ERPQM1 点击完成即可。

一、消息中间件相关知识

1、概述

消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能,成为异步RPC的主要手段之一。当今市面上有很多主流的消息中间件,如老牌的ActiveMQ、RabbitMQ,炙手可热的Kafka,阿里巴巴自主开发RocketMQ等。

2、消息中间件的组成

21 Broker

消息服务器,作为server提供消息核心服务

22 Producer

消息生产者,业务的发起方,负责生产消息传输给broker,

23 Consumer

消息消费者,业务的处理方,负责从broker获取消息并进行业务逻辑处理

24 Topic

25 Queue

26 Message

消息体,根据不同通信协议定义的固定格式进行编码的数据包,来封装业务数据,实现消息的传输

3 消息中间件模式分类

31 点对点

PTP点对点:使用queue作为通信载体

说明:

消息生产者生产消息发送到queue中,然后消息消费者从queue中取出并且消费消息。

消息被消费以后,queue中不再存储,所以消息消费者不可能消费到已经被消费的消息。 Queue支持存在多个消费者,但是对一个消息而言,只会有一个消费者可以消费。

说明:

queue实现了负载均衡,将producer生产的消息发送到消息队列中,由多个消费者消费。但一个消息只能被一个消费者接受,当没有消费者可用时,这个消息会被保存直到有一个可用的消费者。

4 消息中间件的优势

41 系统解耦

交互系统之间没有直接的调用关系,只是通过消息传输,故系统侵入性不强,耦合度低。

42 提高系统响应时间

例如原来的一套逻辑,完成支付可能涉及先修改订单状态、计算会员积分、通知物流配送几个逻辑才能完成;通过MQ架构设计,就可将紧急重要(需要立刻响应)的业务放到该调用方法中,响应要求不高的使用消息队列,放到MQ队列中,供消费者处理。

43 为大数据处理架构提供服务

通过消息作为整合,大数据的背景下,消息队列还与实时处理架构整合,为数据处理提供性能支持。

44 Java消息服务——JMS

Java消息服务(Java Message Service,JMS)应用程序接口是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。

5 消息中间件应用场景

51 异步通信

有些业务不想也不需要立即处理消息。消息队列提供了异步处理机制,允许用户把一个消息放入队列,但并不立即处理它。想向队列中放入多少消息就放多少,然后在需要的时候再去处理它们。

52 解耦

降低工程间的强依赖程度,针对异构系统进行适配。在项目启动之初来预测将来项目会碰到什么需求,是极其困难的。通过消息系统在处理过程中间插入了一个隐含的、基于数据的接口层,两边的处理过程都要实现这一接口,当应用发生变化时,可以独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束。

53 冗余

有些情况下,处理数据的过程会失败。除非数据被持久化,否则将造成丢失。消息队列把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险。许多消息队列所采用的”插入-获取-删除”范式中,在把一个消息从队列中删除之前,需要你的处理系统明确的指出该消息已经被处理完毕,从而确保你的数据被安全的保存直到你使用完毕。

54 扩展性

因为消息队列解耦了你的处理过程,所以增大消息入队和处理的频率是很容易的,只要另外增加处理过程即可。不需要改变代码、不需要调节参数。便于分布式扩容。

55 过载保护

在访问量剧增的情况下,应用仍然需要继续发挥作用,但是这样的突发流量无法提取预知;如果以为了能处理这类瞬间峰值访问为标准来投入资源随时待命无疑是巨大的浪费。使用消息队列能够使关键组件顶住突发的访问压力,而不会因为突发的超负荷的请求而完全崩溃。

56 可恢复性

系统的一部分组件失效时,不会影响到整个系统。消息队列降低了进程间的耦合度,所以即使一个处理消息的进程挂掉,加入队列中的消息仍然可以在系统恢复后被处理。

57 顺序保证

在大多使用场景下,数据处理的顺序都很重要。大部分消息队列本来就是排序的,并且能保证数据会按照特定的顺序来处理。

58 缓冲

在任何重要的系统中,都会有需要不同的处理时间的元素。消息队列通过一个缓冲层来帮助任务最高效率的执行,该缓冲有助于控制和优化数据流经过系统的速度。以调节系统响应时间。

59 数据流处理

分布式系统产生的海量数据流,如:业务日志、监控数据、用户行为等,针对这些数据流进行实时或批量采集汇总,然后进行大数据分析是当前互联网的必备技术,通过消息队列完成此类数据收集是最好的选择。

6 消息中间件常用协议

61 AMQP协议

AMQP即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同开发语言等条件的限制。

优点:可靠、通用

62 MQTT协议

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分。该协议支持所有平台,几乎可以把所有联网物品和外部连接起来,被用来当做传感器和致动器(比如通过Twitter让房屋联网)的通信协议。

优点:格式简洁、占用带宽小、移动端通信、PUSH、嵌入式系统

63 STOMP协议

STOMP(Streaming Text Orientated Message Protocol)是流文本定向消息协议,是一种为MOM(Message Oriented Middleware,面向消息的中间件)设计的简单文本协议。STOMP提供一个可互 *** 作的连接格式,允许客户端与任意STOMP消息代理(Broker)进行交互。

优点:命令模式(非topic\queue模式)

64 XMPP协议

XMPP(可扩展消息处理现场协议,Extensible Messaging and Presence Protocol)是基于可扩展标记语言(XML)的协议,多用于即时消息(IM)以及在线现场探测。适用于服务器之间的准即时 *** 作。核心是基于XML流传输,这个协议可能最终允许因特网用户向因特网上的其他任何人发送即时消息,即使其 *** 作系统和浏览器不同。

优点:通用公开、兼容性强、可扩展、安全性高,但XML编码格式占用带宽大

65 其他基于TCP/IP自定义的协议

有些特殊框架(如:redis、kafka、zeroMq等)根据自身需要未严格遵循MQ规范,而是基于TCP\IP自行封装了一套协议,通过网络socket接口进行传输,实现了MQ的功能。

7 常见消息中间件MQ介绍

71 RocketMQ

阿里系下开源的一款分布式、队列模型的消息中间件,原名Metaq,30版本名称改为RocketMQ,是阿里参照kafka设计思想使用java实现的一套mq。同时将阿里系内部多款mq产品(Notify、metaq)进行整合,只维护核心功能,去除了所有其他运行时依赖,保证核心功能最简化,在此基础上配合阿里上述其他开源产品实现不同场景下mq的架构,目前主要多用于订单交易系统。

具有以下特点:

官方提供了一些不同于kafka的对比差异:

>MQ(Message Queuing)是一种应用程序间通信的方式,通常用于异步处理和解耦。在客户端发送消息到 MQ 服务器时,MQ 会将消息存储在队列中,等待消费者来消费。因此,MQ 查询对端地址的过程大致如下:
1 确定发送方的 MQ 服务器地址。这通常是在应用程序中配置的,可以从配置文件或环境变量中获取。
2 确定对端的 MQ 服务器地址。这通常也需要在应用程序中进行配置,可以从配置文件或环境变量中获取。
3 确定发送到的队列名。这也通常是在应用程序中进行配置的,可以从配置文件或环境变量中获取。注意,队列名不仅仅是一个名称,还包括了 MQ 服务器地址、队列管理器名称等信息,因此需要按照规范进行配置。
4 使用 MQ 客户端API(例如 IBM MQ 的 Java API)连接到 MQ 服务器,并使用 API 中提供的方法发送消息到指定的队列。
总之,要查询对端地址,必须知道自己的 MQ 服务器地址和对端的 MQ 服务器地址。如果您在某个应用程序中进行 MQ *** 作,可以询问负责该应用程序的开发人员获取 MQ 配置信息。

这根本不是问题,你在网上一搜MQ命令就出来了。
我给你列几个常用的命令吧:
启动队列管理器:strmqm
停止队列管理器
endmqm QmgrName 受控停止
endmqm –i QmgrName 立即停止
endmqm –p QmgrName 强制停止
dspmq查看所有的队列管理器的状态,找异常通常用这个命令。
running表示正常,正在运行。
Ended unexpectedly也是正常状态,表示已停止。具体什么原因导致停止你可以去查
Not available就是不正常了,表示不可用。
通常出现异常会有以 “AMQ+4个数字” 给以提示,你可以根据给的提示去找原因。
命令很多不给你一一列出了,出异常就去网上搜或者查资料,弄的多了,你自然就会了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13496238.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-18
下一篇 2023-08-18

发表评论

登录后才能评论

评论列表(0条)

保存