tuxedo的MMSQ负载均衡.docx

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
tuxedo的MMSQ负载均衡

在使用TUXEDO的过程中,会遇到一些并发请求量很大的情况,比如某些帐单处理服务或者是在营业下班前的日操作清单服务。这时,一些SERVICE会接收到大量客户端,甚至长时间的请求,对service,甚至整个系统是严峻的考验。遇到这种情况,单个的server往往难以应付,或者性能不好,我们就想到负载均衡或者使用TUXEDO的MSSQ(Multi Server, Single Queue)。下面笔者根据自己在TUXEDO应用开发和管理配置方面的实践,结合实际系统压力测试的结果对相关的问题进行一些探讨。???? 在使用TUXEDO的过程中,会遇到一些并发请求量很大的情况,比如某些帐单处理服务或者是在营业下班前的日操作清单服务。这时,一些SERVICE会接收到大量客户端,甚至长时间的请求,对service,甚至整个系统是严峻的考验。遇到这种情况,单个的server往往难以应付,或者性能不好,我们就想到负载均衡或者使用TUXEDO的MSSQ(Multi Server, Single Queue)。下面笔者根据自己在TUXEDO应用开发和管理配置方面的实践,结合实际系统压力测试的结果对相关的问题进行一些探讨。?????? 在没有负载均衡的情况下,是由一个server(可能包含一个或多个service)来处理客户端对其中service的请求,所有的请求首先放入这个server的队列里面,然后server逐个取出处理。在UNIX系统上,TUXEDO较多的使用了队列,并且也用到了共享内存和信号量,相关的UNIX系统参数会影响到系统的性能,但这个不在本文讨论范围之内,这里假设已经调到了合适的范围,具体请查阅TUXEDO关于IPC的文档。?????? 现以一个帐单处理的server为例,负载均衡前server的ubb配置为:billpay???? SRVGRP=GROUP1 SRVID=1在单个server不能满足性能要求的情况下,就考虑采用TUXEDO的负载均衡方法。方法一是直接将相关server启多份,将上面的配置改为:billpay???? SRVGRP=GROUP1 SRVID=1 MIN = 5? MAX = 10这样tmboot的时候,就会有MIN = 5个billpay启动,类似下面的情况:billpay ?? 00001.00001 GROUP1???????? 1????? 0???????? 0 (? IDLE )billpay ?? 00001.00002 GROUP1???????? 2????? 0???????? 0 (? IDLE )(依此类推,共5个)其中第二列是该server的队列名,.前面是GRPNO,后面是SRVID,每个server有自己的队列。相关的另一个参数就是在ubb的*RESOURCES段的LDBAL,表示是否启动Load Balancing,默认是N(不启动),你可以通过设置成Y来启动。这里需要注意的是,为N的时候并不表示多个server不能分担负载。主要的差别是为Y时,TUXEDO在接收到请求时会按照它的负载均衡的算法来找到合适的server来处理,而设置成N时,总是由第一个可用的server来处理。通过这种方法可以让多个server来处理大量并发的请求,就达到了改善性能的目的。?????? 方法二是采用MSSQ(Multi Server, Single Queue),顾名思义,就是有多份server,但是只有一个队列(请求队列)。具体的配置是:billpay???? SRVGRP=GROUP1 SRVID=1 MIN = 5? MAX = 10?????? RQADDR= billpay????? REPLYQ=Y启动后的情况如下:billpay ?? billpay ????????? GROUP1???????? 1????? 0???????? 0 (? IDLE )billpay ?? billpay ????????? GROUP1??????? ?2????? 0???????? 0 (? IDLE )(依此类推,共5个)我们发现几个billpay server都关联相同的名为billpay的队列,这就是所谓的Single Queue。与直接多server相比,多了两个参数,RQADDR是这多个server共用的队列名,是一种逻辑名,可以自己命名,不和别的冲突就可以,REPLYQ是标示是否设置返回队列,在使用MSSQ的时候是强烈建议设置,因为这样可以将请求和返回分开,避免多个server共用队列时造成混乱。相关的其它参数这里没有详细列出。?????? 到底两种方式和没有负载均衡时有什么不同,后面将提供相关的测试结果。先分析一下两种方法。方法一有多个队列可以容纳请求,但是这些大量的请求怎

文档评论(0)

xy88118 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档