Websphere MQ

**************************MQ***********************************
第一部分
1、在当今世界的各种复杂I/T系统中,永远是集中与分散并存,各种新老技术并存的局面。
我们对系统的整合不应该执着于用一种技术将其全盘替换或更新,而是应该试图寻
找一种灵活的办法,将它们有机地联系起来。换句话说,不是要改造各个系统,而是要加强各个系统之间
的联系,从而更好地使用已有的子系统。

2、对于消息驱动的模块之间需要约定的是消息的报文格式、通信模式和功能定义。
报文格式:也就是双方模块都能理解的消息语言,如载酝蕴
通信模式:也就是双方通话的方式,如双向的一问一答方式、单向的汇报方式、点对点方式以及一对多广播方式
功能定义:也就是说模块在收到一条消息后应该做的相应动作

3、消息驱动结构的系统中几乎所有的模块都在等待消息,在消息到来后进行相应的处理,处理结束后又
回到这个点等待下一条消息

第二部分
1、中间件
计算机软件发展到今天,很多具有独立功能的应用模块都被逐渐隔离出来形成软件产品,这些软件往
往是针对某一种应用需求,在相关的领域中具有很强的通用性。它们通常界于操作系统和应用程序之间,
为应用程序提供一些标准的服务,我们称这一类软件为中间件。中间件根据其应用领域也分成多种,比如
交易中间件、消息中间件、Web中间件等。
2、消息中间件
它通常是一个独立运行的通信环境,有统一的编程调用接口,可以跨平台、跨协议。不同结点之间的软件可以
通过配置相互连通,搭起统一的通信平台,从而产生更强大的功能。这种通信软件往往安全可靠、配置灵活,
其地位在操作系统之上,在应用程序之下,所以被称为消息中间件(Message Oriented Middleware MOM)。
WebSphere MQ本质上是一种消息中间件,用于保证异构应用之间的消息传递。
3、WebSphere MQ
3.1 WebSphere MQ Express 适合于那些中小型的企业应用,在并发度上要求不高,传递数据的量也不大,投
资较少。WebSphere MQ Express也适用于树状结构中下一层的结点,这些结点通常对连接数要求不高。
3.2 WebSphere MQ是构建完整的异构应用互连平台所必需的,由于对连接数量没有限制,可以根据需要
架构各种复杂的网状或树状结构,通常对于大中型企业应用。
3.3 WebSphere MQExtended Security Edition除了具有WebSphere MQ的全部功能,还可以在保证数据传送之外,具有TAMBI
的功能,提供一个集成的MQ安全环境,可以对消息加密传送,可以生成数字签名,等等。大型企业应用和
敏感数据传送应用可以选择这个产品
第三部分
1、MQ对象
Websphere MQ环境中有较多的概念,其中有一部分是可以作为实体进行的操作的,称为MQ
象。每一个对象都有各自的属性,不同的属性决定了对象的特性和工作方式。消息、队列、队列管理器和
通道是MQ中最重要的概念和对象。
1.1 消息(Message)
消息是MQ中最小的概念,本质上就是一段数据,它能被一个或多个应用程序所理解,是应
用程序之间传递的信息载体。消息可以大致分成两部分:应用数据体和消息数据头
1.1.1 消息数据头是对消息属性的描述,这段信息往往被队列管理器用来确定对消息的处理。消息数据
头可以由应用程序或系统的消息服务程序共同产生,它包含了消息在传送中的必要信息,如目标队
列管理器的名字、目标队列的名字以及消息的其他一些属性。
1.1.2 应用数据体是应用间传送的实质的数据消息,它可以是字串、数据结构甚至二进制数据。包含的内
容可以是文本、文件、声音、图像等任何数据,这些数据只对特定的应用具有特定的含义。所以,应
用数据体的结构和内容由应用程序定义,通信双方需要事先约定报文格式。
1.1.3 消息可以分成持久(Persistent)消息和非持久(Non-Persistent) 消息。“持久”的意思就是在MQ
队列管理器重启动后,消息仍然能保持。
1.2 队列(Queue)
我们可以简单地把队列看成一个容器,用于存放消息。队列按其定义可分成本地队列、远程队列、别
名队列和模型队列。其中只有本地队列是真正意义上的队列实体,可以存放消息
一个队列管理器下辖很多个消息队列,但每个队列却只能属于一个队列管理器。队列在它所属的管
理器中只能有一个惟一的名字,不能与同一个管理器的其他队列重名。当消息被添加到队列中,它缺省将
被加到最后,与之相反,删除消息缺省却是从头开始。
1.2.1本地队列按功能又可分成初始化队列、传输队列、目标队列和死信队列。初始化队列用做消息触发。
传输队列只是暂存待传的消息,在条件许可的情况下,通过管道将消息传送其他的队列管理器。目标队列
是消息的目的地,可以长期存放消息。如果消息不能送达目标队列,也不能再路由出去,则被自动放入死
信队列保存
1.2.2普通队列
能够真正长期存放消息的本地队列,我们称之为普通队列。一般说来,应用程序只对其做简单的
酝匝郧耘栽和酝匝孕哉栽以收发消息,这也是系统中用得最多的消息队列。通常在不会引起混淆的情况下,我们
也将普通本地队列简称为本地队列。
1.2.3别名队列
只是一种队列定义,它自身只是队列的逻辑名字,并不是队列实体本身。别名队列的栽粤砸郧匝
属性指明了其代表的目标队列名称,目标队列通常是本地队列。其实别名队列只是提供了队列名称之间
的映射关系,可以将别名队列看做指针,指向其目标队列。注意,这里的目标队列自身也可以是一个别名
队列,指向下一个目标队列。然而,在对别名队列进行打开(MQOPEN)操作时,只允许别名队列指向一个
普通本地队列,即一层映射关系。如果存在上述的多层映射关系,则报MQRC_ALIAS_BASE_Q_TYEP_ERROR。
通过别名定义,MQ也可以动态改变消息流向。比如:某程序在代码中指定消息写入队列
A,但是你希望在不变动代码的情况下将消息写入队列B。这时只要定义别名B,使之指向A即可。再如:
某队列悦是可读可写的本地队列,管理员希望它对于一类程序只可读,对另一类程序只可写,这时可以对
C定义两个别名D和E,D只允许读,E只允许写。也就是说,C的属性为GET(ENABLED)且
PUT(ENABLED),D的属性为GET(ENABLED)且PUT(DISABLED),E的属性设置为GET(DISABLED) 且
PUT(ENABLED)。将D和E分别提供给上述两类程序使用,这样可以避免应用程序的误操作。
1.3队列管理器(Queue Manager)
队列管理器构建了独立的MQ运行环境,它是消息队列的管理者,用来维护和管理消息队列。
一台机器上可以创建一个或多个队列管理器,每个队列管理器有各自的名字,通常情况下,它不能
与网络中的其他队列管理器重名。如果我们把队列管理器比作是数据库,那么队列就是其中的一张表,消
息就是表中的一条记录。
1.4通道(Channel)
通道是两个队列管理器之间的一种单向的点对点的通信连接,消息在通道中只能单向流动。如果需
要双向交流,可以建立一对通道,一来一去。站在队列管理器的角度,这一对通道可以按消息的流向分成
输入通道和输出通道。通过配置,对于放入本地传输队列中的消息,队列管理器会自动将其通过输出通道
发出,送入对方的远程目标队列。
两个队列管理器之间可以有多条通道负责传输不同的内容.
通道两端的配置必须匹
配,且名字相同,否则无法连通。队列管理器之间的通信是通过配置通道来实现的,通道两侧的队列管理
器对这个通道的相关参数应该能对应起来,一个通道只能用一种通信协议,但不同的通道可以有不同的通
信协议。可见,通道是架设在通信协议之上的对象,架设在不同通信协议上的通道在应用层看来都大同小异。
1.4.1通道类型(Channel Type)
MQ用通道类型属性(CHLTYPE)约定了通信双方在连接握手协议中的主动方和被动方以
及应用消息的流向。
第四部分
MQ的工作原理的核心就是存储转发。在单个队列管理器的环境中,队列可以用于存储应用间传递的消息,
从而使应用程序在各自环节上进行处理,并通过队列形成环环相扣的处理流程。在多个
队列管理器的环境中,消息可以跨平台进行流动,从而使整个处理流程在分布式计算环境中完成。


***************************************************************
dspmqver 显示mq版本
队列管理器操作
dspmq 显示所有的对列管理器
crtmqm QM_TEST 创建名为QM_TEST的队列管理器
strmqm QM_TEST 启动名为QM_TEST的队列管理器
endmqm QM_TEST 停止队列
dltmqm -z QM_TEST 删除队列

命令服务器是队列管理器的一个组件,用来对外来的命令消息进行解释和执行。在远
程管理和编程管理的应用中,需要启动命令服务器
strmqcsv QM_TEST 启动QM_TEST的命令服务器
endmqcsv -c QM_TEST停止命令服务器
dspmqcsv QM_TEST 显示命令服务器
监听器也是队列管理器的一个组件,用来监听外来的连接请求并相应地做出反应。
监听器通常需要先配置,然后才能运行,配置参数与监听器选择的通信协议有关
runmqlsr -t tcp -p 1414 -m QM_TEST 启动监听器
endmqlsr -m QM_TEST 停止监听器

创建队列
runmqsc QM_TEST 启动队列管理器的MQSC(命令行交互界面管理工具)
define qlocal (Q_TEST) 创建出本地队列对象 Q_TEST
end 退出交互管理工具
amqsput Q_TEST QM_TEST 将消息逐行放入队列,每行输入代表一条消息,输入空行结束
qmqsget Q_TEST QM_TEST 将放入的消息全部取出
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值