WebSpherMQ教程

上传人:野鹰 文档编号:3195628 上传时间:2017-07-31 格式:PPT 页数:77 大小:613.50KB
返回 下载 相关 举报
WebSpherMQ教程_第1页
第1页 / 共77页
WebSpherMQ教程_第2页
第2页 / 共77页
WebSpherMQ教程_第3页
第3页 / 共77页
WebSpherMQ教程_第4页
第4页 / 共77页
WebSpherMQ教程_第5页
第5页 / 共77页
点击查看更多>>
资源描述

《WebSpherMQ教程》由会员分享,可在线阅读,更多相关《WebSpherMQ教程(77页珍藏版)》请在金锄头文库上搜索。

1、1,Web Sphere MQ教程,2,提要,Websphere MQ 介绍安装和配置Websphere MQ Websphere MQ 集群Websphere MQ 分布式队列管理Websphere MQ 故障诊断,3,议程,MQ概念中间件MOM异步通信消息原理MQ对象演示Reference(备用) 应用案例,4,MQ简史,1992 SSI(Server Side Includes,服务器端包含),开发了消息产品ezBridge; IBM为网络通信定义了3个API标准: CPI-C, RPC, MQI1992-3 IBM开发消息产品(代码 Victory)1993 IBM从SSI那里购买了e

2、zBridge的版权之后MQSeries version1 产生(主要运行在大型机上)1994/1995 IBM发布三个平台的MQ: AIX, OS/2, 和 AS/400. 到MQSeries 5.3 (WebSphere MQ5.3)已支持超过35个平台Windows, Linux, 多个Unix, 2006年初 WebSphere MQ 6 发布,CPIC(Common Programming Interface Communication, IBM公共通信编程接口)是一个与平台无关的API,它与一套公用的APPC(高级程序间通信)接口。简单直接,在支持CPI-C的所有平台上都可移植。C

3、PI-C旨在为跨IBM平台执行应用程序提供一个公用环境。这些平台包括 IBM MVS(多重虚存系统)、VS(虚存系统)、OS400和基于OS/2的系统等。,5,RFC(远程过程调用):架构在CPI-C接口之上,RFC的调用都将转换为CPI-C的调用完成.,6,7,什么是WebSphere MQ(MQ Series)?(1.1),是一种中间件产品,它实现了一个消息队列框架.中间件 将不同的计算环境连接起来的中间软件.Unix, MVS, OS/400, VMS, Windows NT/2k, etc.SNA, NetBios, TCP/IPCobol, C, JAVA 是介于应用与操作系统之间的

4、系统软件,是相关应用的基准平台。,8,MQ概念 中间件(1.1.2),9,三种通信技术的比较(1.2),CPI-C同步的对话通信模式RPC(远程过程调用)同步的、对话方式的模型MQI(Message Queue Interface,消息队列接口)为程序提供了一种异步通信方式,一个程序以一个队列作为中转与另一个程序相互通信,10,MQ概念 Message Oriented Middleware(1.3),简单地说,MOM就是这样的中间件,它允许一个应用向另一个应用发送消息,而无论该应用是否在线。,平台 A,消息队列子系统A,应用A”放入“消息,平台 B,消息队列子系统B,应用B” 获取“消息,消

5、息队列,11,MQ概念 消息和队列,消息 程序之间的通信是通过发送消息数据而不是相互间直接调用.队列 消息通过放入队列而存储下来, 减少了程序间逻辑性连接的需要.消息传输系统应用程序接口,12,MQ概念 异步 vs. 同步通信,消息队列框架的通信模式是异步的!同步: 应用发送请求后一直等待,直到请求被处理。客户端请求的同时,服务必须在线。异步: 应用发送请求,然后在将来检查请求是否被处理完成。客户端请求时,服务无需在线。,13,14,同步的 good/bad,易编程输出立即可知更易恢复错误 (通常)更好实时响应 (通常),服务必须启动、在线请求方阻碍占用资源通常要求面向连接的通信协议,Good

6、,Bad,15,异步的 good/bad,请求无需指定服务器服务无需在线由于没有占用, 资源可以释放可以使用非连接协议,响应时间不可预测错误处理通常复杂难以设计程序?,Good,Bad,16,消息的长处,消息的长处:,我们可以集中精力去做应用本身的设计.,再也不用管有关环境方面的细节了.,应用变得可以移植、扩展了.,17,图解消息工作原理,程序通过放置消息到队列来进行通信. 图中, A程序 将消息放入 Queue1, B程序读取Queue1的消息.,Note: A 和 B 不必位于同一台机器上!,18,消息工作原理 (2),通信可以是单向或者双向。图中, A 发送到 B上的Queue1, 然后

7、B又 响应到 A 的Queue2,19,消息工作原理 (3) 之 消息队列特性,关于消息队列,有三个关键事实使得它不同于其他通信方式:1) 要通信的应用程序可以运行在不同时间.2) 对于应用间的结构没有限制.3) 对于应用程序来说,底层的环境差异被屏蔽掉.让我们一一看去.,20,消息队列特性 - 应用程序可以运行在不同时间,程序A,B不必同时在线,关键: 消息队列相对于使用它们的应用而言是独立存在的!,21,消息队列特性 对于应用间的结构没有限制,应用之间可能是一对多,或者是多对一,22,消息队列特性 环境差异被屏蔽掉,不用关心运行在什么OS之上.不用关心程序由什么语言写的.不用关心底层使用什

8、么通信协议.,23,消息队列特性 - 环境差异被屏蔽掉,应用程序,编程API,通过消息通道进行通信,队列管理器,队列管理器,消息队列,24,WebSphere MQ的原理( 1.3 ),25,MQ对象(2.1),队列管理器(Queue managers)队列(Queues)名字列表(Namelists)分发列表(Distribution lists)进程定义(Process definitions)通道(Channels)存储类(Storage classes),26,MQ对象: 队列管理器(Queue Manager)(2.1.4),队列管理器控制对队列的访问:管理 (创建队列, 删除队列,

9、 等)使用 (放入, 读取 消息)对于所有队列操作可统一进行事务控制.通过MQI接口访问如同主机名,队列管理器名字在网内必须唯一.,27,MQ对象: 队列(Queues)(2.1.3),MQ定义了四种队列. 队列是用它的队列管理器和队列名称来完全确定的.本地队列 实际队列,会为它分配存储空间. 包含传输队列。远程队列 其他队列管理器上的队列的映射定义 (类似于指针、引用)别名队列 某一本地或远程队列的别名. (用于编程的灵活性)模型队列 队列模板,可用于创建本地队列 (“ create queue xxx “like” queue yyy).,28,MQ对象:队列的属性,最大消息长度最大队列深

10、度允许/禁止 放入消息 或 取出消息持久/非持久用法:正常/传输,Demo:MQ资源管理器,29,MQ对象: 消息通道(2.1.4),定义:为两个队列管理器(相同或不同平台)提供通信的通路.一个消息通道只能在一个方向上传送消息. 如要双向通信,就得在队列管理器间建立两个消息通道.一个通道可以为队列管理器上的任意多个队列服务,30,MQ对象: 消息通道(2),通道类型:Sender 发起到Receiver的连接Server 接受requester的请求, 变成Sender通道Receiver 被动; 等待Sender的连接Requester 启动时活动, 变成Receiver通道Cluster-

11、sender (用于队列管理器集群)Cluster-receiver (同上),31,MQ对象: 消息如何在通道传输,(1) 应用程序将消息放入传输队列,(2) Sender MCA取出消息然后发送到 partner MCA,(3) Receiver MCA 将消息放入目标队列,(4) 对于应用来说消息可用了,32,MQ对象: 有保障传输,若队列是持久的, 消息也是持久的, 则MCA最终一定会将消息传送到目标队列, 进而被目标应用获取!MCA是可恢复的(有状态的),而且是面向连接的协议.消息不会从传输队列中删除,除非对方MCA确认消息到达了目标队列消息通道代理(message channel

12、agents,MCA),33,MQ对象: 消息(2.1.2),消息包含有:消息头 (MQMD)包含消息的属性(由QM和程序处理)用户数据程序到程序的数据 (“负载”)对于 MQ来说是透明的,34,MQ对象: 消息属性,目标队列应答队列名可存在时间 (失效时间)格式相关标识持久性“报告” 选项,35,MQ的体系结构(2.2),WebSphere MQ 和消息排队WebSphere MQ 使应用程序通过使用消息排队来实现消息驱动处理,使用对应的消息排队软件产品实现在不同平台之间进行通信。从而使应用程序屏蔽了底层的通讯结构。 WebSphere MQ 产品提供了消息队列接口(或 MQI)的公共应用程

13、序编程接口,如果应用程序使用了MQI,将非常容易将应用程序从一个平台移植至另一个平台。,36,2.3客户机和服务器WebSphere MQ 支持其应用程序的客户机服务器配置。 WebSphere MQ客户端通过MQI通道与WebSphere MQ服务器进行通讯。,37,2.4触发机制2.4.1触发的概念2.4.2触发类型2.4.3触发的工作原理,38,队列管理器群集(2.5),群集的概念 群集的优点 群集的组件 创建群集 群集管理,39,在Websphere MQ集群中,成员队列管理器可以创建本地队列,并将其在集群中共享,集群中的其他成员队列管理器不需要任何额外的配置操作,就可以像访问本地队列

14、一样向该队列放入(PUT)消息;每个成员队列管理器都可以创建与之同名的共享队列,于是该共享队列在集群中就拥有了多个副本,所有的副本将作为一个虚拟的整体;对访问者(调用MQPUT的应用)而言,它们就是一个队列,应用不需要关心如下细节:物理上有多少队副本; 队列副本部署的物理列位置; 消息实际发送到哪个队列副本。 所有这些细节问题由集群负责处理,由此实现了集群的负载均衡功能。,为了减少应用程序对于它所运行环境的依赖性,WebSphere MQ的应用程序可以和一个它不知道名字的队列管理器相连,这个队列管理器就是一台机器上的缺省队列管理器。如果程序在调用MQCONN时,把队列管理器名参数设置为空,MQ

15、CONN将返回与缺省的队列管理器连接的句柄。,40,41,如果要从集群的外部发送消息到集群,并希望消息在集群的成员间合理的分配,那么集群中作为与外部环境接口点的队列管理器上就不能存在任何共享队列的副本,否则所有消息将积压在接口点队列管理器上,使集群的负载均衡功能英雄无用武之地。通常的解决方案是为集群配置至少一个特殊的队列管理器,通常称为网关(Gateway)队列管理器,该队列管理器上没有任何共享队列的副本,只需配置与集群外部的通讯设置(通道、监听器等)和相关的队列管理器别名(Queue-manager alias)。建立队列管理器别名的方法是建立一个RNAME属性为空的远程队列。,42,Web

16、Sphere MQ 互连通信,基本概念 实现应用程序通信 通道的维护 配置侦听程序,43,WebSphere MQ 恢复和重新启动,WebSphere MQ的数据日志 使用数据日志进行恢复 保护 WebSphere MQ 日志文件 备份和恢复 WebSphere MQ 恢复方案 使用 dmpmqlog 命令转储日志,44,WebSphere MQ 问题诊断,错误日志 死信队列 配置文件和问题确定 跟踪 首次故障支持技术(FFST),45,WebSphere MQ 问题诊断,WebSphere MQ 使用许多错误日志来捕捉WebSphere MQ自身的操作、任何队列管理器的启动和正在使用的通道的错误信息。 错误日志的位置取决于队列管理器名,以及错误是否与客户机相关。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号