《WebSphere+MQ入门培训教程(PPT).ppt》由会员分享,可在线阅读,更多相关《WebSphere+MQ入门培训教程(PPT).ppt(67页珍藏版)》请在课桌文档上搜索。
1、2023/3/20,1,WebSphere MQ入门培训教程,2023/3/20,2,引言,复杂的网络和应用环境通信的种类WebSphere MQ的特点,2023/3/20,3,现实环境,2023/3/20,4,通讯的种类,2023/3/20,5,WebSphere MQ的特点,2023/3/20,6,索引,1:WebSphere MQ概念和原理2:WebSphere MQ应用设计3:WebSphere MQ 方案设计案例介绍,2023/3/20,7,:WebSphere MQ概念和原理,1.1概念1.1.1队列管理器1.1.2消息1.1.3队列1.1.4通道1.1.5进程定义1.1.6其它1
2、.2工作原理,2023/3/20,8,1.1.1队列管理器与数据库的比较队列管理器构建了独立的WebSphereMQ的运行环境。用来维护和管理消息队列,提供定义、配置、管理、调度以及各种服务功能。,2023/3/20,9,与数据库的比较,2023/3/20,10,队列管理器,2023/3/20,11,1.1.消息本质上就是一段数据:消息描述块和应用数据体。消息描述块:是对消息的描述,例如:永久消息。应用数据体:字串,数据结构,二进制。内容(文本,文件,声音,图像),2023/3/20,12,消息,2023/3/20,13,1.1.队列队列可以看成一个容器,用于存放消息。队列分为:本地队列,远程
3、队列,别名队列,模板队列。本地队列分为:普通队列,传输队列,初始化队列,目标队列,死信队列,应答队列,命令队列。,2023/3/20,14,队列,2023/3/20,15,1.1.通道通道:一种单向的点对点的通信连接。通道种类:消息通道和MQI通道。,2023/3/20,16,通道类型,通道类型分为:SDR:握手协议的主动方,消息的发送方。RCVR:握手协议的被动方,消息的接收方。SVR:握手协议的主/被动方,消息的发送方。RQSTR:握手协议的主/被动方,消息的接收方。CLNTCONN:Client-Server连接,定义客户端连接定义表,握手协议的主动方,消息的发送方。SVRCONN:Cl
4、ient-Server连接,定义服务器端连接,握手协议的被动方,消息的接收方。CLUSSDR:群集中使用,握手协议的主动方,消息的发送方。CLUSRCVR:群集中使用,握手协议的被动方,消息的接收方。,2023/3/20,17,消息通道,2023/3/20,18,MQI通道,2023/3/20,19,1.1.其它名称列表分布列表多家发送进程定义触发机制,2023/3/20,20,触发机制,2023/3/20,21,1.工作原理核心:存储转发。PUT和GET互连通信消息通道消息路由(队列管理器名和队列名)消息传输(MQMD+MQXQH+Body),2023/3/20,22,本地传递消息,2023
5、/3/20,23,跨网络传递消息,2023/3/20,24,实现双向传输,2023/3/20,25,:WebSphere MQ应用设计,2.1MQ API和数据结构2.2发送消息设计2.3接收消息设计2.4容错设计,2023/3/20,26,2.1 MQ API和数据结构MQ APIMQI Call一些数据结构,2023/3/20,27,WebSphere MQ API,2023/3/20,28,MQI Call,2023/3/20,29,MQI的一些数据结构,2023/3/20,30,2.2发送消息设计消息属性远程队列应答队列(动态队列)格式转换消息分组和分段,2023/3/20,31,2.
6、2.1 消息属性消息标识(MsgId,CorrelId,GroupId)消息类型(requests,replies,datagrams,reports)消息格式(Format,Encoding,CodedCharSetId)Format表示消息体的数据结构,2023/3/20,32,2.2.2 远程队列,2023/3/20,33,2.2.3 本地应答队列,2023/3/20,34,2.2.3 远程应答队列,2023/3/20,35,2.2.3 发送回执到应答队列,2023/3/20,36,2.2.4 Encoding,整数的高低字节安排、浮点数的精度和幂的安排,等等。,2023/3/20,37
7、,2.2.4 CodedCharSetId,指消息的字符所属的文字集,如单字节英语码,双字节汉语码等。,2023/3/20,38,2.2.4 Format Field,内置格式Text stringsMQ定义的消息格式Trigger MessageEvent Message自动转换消息转换出口应用自定义格式内置格式转换失败,2023/3/20,39,2.2.4 格式转换应用,Put messageMQENC_NATIVE-for native encodingMQCCSI_Q_MGR-for the same CCSID as the queue managerPut all messages
8、 with a format nameMQFMT_STRINGMQGET调用设置MQGMO_CONVERT或者在发送通道设置CONVERT(YES),2023/3/20,40,2.2.5 消息分组和分段,分组是指从应用逻辑的角度,把若干本身完整、在应用逻辑上又具有相关性的消息从逻辑上分为一组进行处理。分段指把某个大消息从物理上分为若干个消息片段,比如在处理大文件传输时,可以采用消息分段技术。,2023/3/20,41,消息分组,2023/3/20,42,消息分段,2023/3/20,43,2.3接收消息设计使用MsgId,CorrelId匹配消息MQMO_MATCH_MSG_ID,MQMO_M
9、ATCH_CORREL_ID或者MQMO_MATCH_MSG_TOKENMQGMO.Options=MQMO_NONE等待接收消息MQGMO.Options=MQGMO_WAIT,MQGMO.WaitInterval为等待时间MQGMO.Options=MQGMO_NO_WAIT浏览消息MQGMO_BROWSE_FIRST/NEXTMQGMO_BROWSE_MSG_UNDER_CURSORMQGMO_LOCK,2023/3/20,44,MsgId and CorrelId,2023/3/20,45,MsgId,CorrelId和应用并行,2023/3/20,46,检索消息,2023/3/20,
10、47,MSGID,CORRELID举例,2023/3/20,48,Wait message,2023/3/20,49,浏览消息,2023/3/20,50,2.4容错设计出错处理检查完成码和原因码注意关闭打开对象句柄,最后断开与队列管理器连接。报告消息处理死信消息,2023/3/20,51,错误处理,2023/3/20,52,report options,队列管理器产生的Reports Exception异常Expiration超时COA成功到达COD成功阅读应用程序产生的ReportsPAN处理成功NAN处理失败QUIT,2023/3/20,53,Feedback Field Values,M
11、QFB_NONEMQFB_EXPIRATIONMQFB_COAMQFB_CODMQFB_PANMQFB_NANMQFB_QUIT.,2023/3/20,54,Msgid,Correlid,Reports and Replies,2023/3/20,55,死信队列,WebSphere MQ放消息到死信队列:MCA,如果远程消息不能交付MCA,如果发送消息不能数据转换Trigger Monitor,如果触发消息失败,2023/3/20,56,死信队列,2023/3/20,57,3:案例介绍,2023/3/20,58,网络拓扑,2023/3/20,59,运用的MQ技术,通讯方式服务器之间通讯 CCP
12、C-NPC群集功能 NPCload balanceFail over消息特性消息分段Report选项优先级失效队列远程队列,传输队列,接收队列,死信队列,错误队列(应用设计)触发机制 first通道启动接收应用启动,2023/3/20,60,流程图,2023/3/20,61,系统架构,2023/3/20,62,MQ集群设计,2023/3/20,63,群集,为了简化点对点通讯模式中的系统配置,MQ提供Cluster(群集)的解决方案。群集类似于一个域(Domain),群集内部的队列管理器之间通讯时,不需要两两之间建立消息通道,从而大大简化了系统配置。此外,群集中的队列管理器之间能够自动进行负载均衡,当某一队列管理器出现故障时,其它队列管理器可以接管它的工作,从而大大提高系统的高可靠性。,2023/3/20,64,群集,2023/3/20,65,Load-balance,2023/3/20,66,Fail-over,2023/3/20,67,总结,MQ的概念和原理(系统架构)应用的设计MQ API和数据结构发送应用-远程队列,消息结构接收应用-匹配发送应用容错设计-应用的完整性,