基于Websphere MQ搭建高可用消息传输队列.docVIP

基于Websphere MQ搭建高可用消息传输队列.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Websphere MQ搭建高可用消息传输队列.doc

基于Websphere MQ搭建高可用消息传输队列   摘要:WebspereMq是IBM研发的一款优秀的消息中间件产品。该产品基于消息队列的存储转发机制,为不同应用的整合通信,信息交换提供稳定的桥梁。在实际应用中,底层产品如存储器等对中间件整体可用性有很大影响。该文在如何提高消息中间件可用性方面进行了探索。   关键词:Websphere MQ;消息队列;高可用;负载均衡   中图分类号:TP31 文献标识码:A 文章编号:1009-3044(2015)19-0076-02   消息队列技术是分布式应用间交换信息的一种技术,在异步化分布式系统中,应用可以通过消息队列进行数据传输,指令交换或者文件传递等。消息队列对外规约一致的存取接口,内部屏蔽了底层实现细节和协议的差异性,在解除了应用耦合的同时,使得应用可以专注于业务细节而非通信管控。   IBM公司研发的Webspere MQ就是一款典型的消息队列产品,在消息存储转发机制基础上,更好的原语设计,更强的通信协议适配以及定制性更好的安全策略等,都使得该系列在业界应用十分广泛,成为了不同操作系统,不同网络环境之间应用通信的桥梁。   在很多关键性领域中如金融,交通管控等,往往对于消息可靠性要求较高。要做到消息不丢,不重,不错,即保证队列管理器能够同时实现数据和服务的高可用,仅仅凭借MQ无法实现,需要从底层产品人手,同时对MQ自身的参数调配,搭建高可用的消息队列。   1基础知识介绍   应用程序把消息放进队列里,然后发往另外一个队列管理器中的队列,或者等待其他的应用程序把消息读走,由于其良好的适配性,常被用于不同主机间的进程间异步化通信。它有几个重要的概念:   1)队列管理器   MQ的基础设备,作为顶级单元,它往往被用于维护和管理其他通信中使用的对象,并完成同其他队列管理器的通信。   2)消息   队列管理器使用的基本通信单元被称为消息。它分为消息头和消息主体两部分。消息头存放了消息描述符(MessageDescriptor),这些内容供MQ本身使用,消息主体里面存放应用数据(Application Data),由取用消息的应用程序解析使用。   3)队列   用于存放消息,是存储转发机制实现的核心。常用的队列有本地队列,远程队列,传输队列和别名队列等。远程队列指向另一个队列管理器的本地队列。在被放人消息后,会将消息通过传输队列传递到远程的队列管理器中去。   4)通道   队列管理器之间以及同应用程序间的通信都需要使用通道。特别地,分别在两台队列管理器A和B上面建立同名的发送通道和接收通道,即可完成从A到B的通信,反向亦然。   5)监听器   监听器需要被单独定义并启动,用来监听对应端口的消息。这些消息可能是应用数据,也可能是管理请求。   图1是一般基于MQ的通信环境拓扑示意图。   图1的方案可以满足基本的通信需求,但是由于存在着诸如单点故障等隐患,因而无法保证通信链路的高可用性。   为了解决单点故障,MQ提出了多实例队列管理器的概念。定义多实例队列管理器,并在共享存储上队列管理器数据和日志,然后将这个信息分发给另外的挂载该存储的MQ服务器,就实现了多实例队列管理器。应用strmqm-x[QM_NAME]可以以多实例的主机方式启动队列管理器。后启动的一台将以standby方式运行,当主机宕机或者出现故障,其加在存储上的锁会被释放,备用机接管并启动,成为主机。一套多实例队列管理器最多同时支持两台实例同时运行。其他实例只能在有运行实例宕机后手动启动。   2高可用队列管理器总体设计方案   该方案设计拓扑结构如图3所示,本方案主要从3个层次解决单点故障问题。首先,通过多实例队列管理器来保证应用层的服务可用性。这样,在一台MQ主机宕机后,备用实例自动运行起来,继续为客户端应用程序提供服务。   其次,在存储层,应用GlusterFS服务器作为共享存储,GlusterFS采用堆栈式结构组织,封装了多台服务器的写磁盘操作为一个原子写入操作,所有写入挂载目录的请求会被转化为网络通信后写入多台服务器中,同时成功即返回成功。单台存储主机宕机后,另外的主机会根据一定的算法踢出不可用的服务器,重新组织结构并继续对外提供数据存储服务。通过这种多机冗余和强同步机制,实现了存储服务的高可用性和极高的数据一致性。   最后,在客户端应用和队列管理器之间,使用lvs和keepal-ived搭建了vip,在队列管理器完成切换后,vip会自动实现漂移和迁转,这个过程对应用几乎透明。总体方案有效地提高了服务在线率和可用度。   3方案可靠性验证实验   设计了三组实验来验证这套方案的可用性。首先部署实验环境如下:   机器A上运行应用通

文档评论(0)

yingzhiguo + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5243141323000000

1亿VIP精品文档

相关文档