MQ群集的使用
2008-12-01 11:04:38 来源:WEB开发网如图6所示:
图6
在总部建立三个队列管理器:QMGRHQ1,QMGRHQ2和QMGRGW,将这三个队列管理器组成一个群集CLUSTER1,QMGRA和QMGRB代表两个省的队列管理器,QMGRHQ1,QMGRHQ2位于应用服务器主机上。在这里我们要向大家指出的是:当群集内的队列管理器要和群集外的队列管理器通讯时,必须要设置一个网关队列管理器,利用该网关作为二者之间的桥梁,本例中QMGRWG即为网关队列管理器,它不对应用程序数据做任何处理,而仅仅起到路由的作用。而网关队列管理器和群集外的队列管理器之间的通讯配置必须遵循传统的MQ服务器之间点对点的配置方式,即要建立相应的传输队列、远程队列和消息通道等对象。
图6中的配置步骤如下:
1) 创建群集CLUSTER1,使QMGRHQ1,QMGRHQ2和QMGRGW成为该群集的成员,创建的方法同前例,在此不再赘述;
2) 在QMGRHQ1,QMGRHQ2上建立群集共享队列INPUTQ,在QMGR1和QMGR2上,分别执行MQSC命令:
DEFINE QLOCAL(INPUTQ) CLUSTER(CLUSTER1)
3) 在网关队列管理器QMGRGW上建立队列管理器别名ANY.CLUSTER,建立队列管理器别名的方法是建立一个RNAME属性为空的远程队列,在QMGRGW上执行MQSC命令:
DEFINE QREMOTE(ANY.CLUSTER) RNAME(' ') RQMNAME(' ')
4) 在QMGRA和QMGRB上建立传输队列和远程队列及通道,分别执行MQSC命令:
DEFINE QLOCAL(QMGRGW) USAGE(XMITQ)
DEFINE QREMOTE(TO.INPUTQ) RNAME(INPUTQ) RQMNAME(ANY.CLUSTER) XMITQ(QMGRGW)
通过上述配置,我们达到了这样的效果,当省级的队列管理器向总部的应用服务器的队列管理器QMGRHQ1和 QMGRHQ2发送数据时,消息将会首先被发往网关队列管理器QMGRGW,然后通过它被路由到QMGRHQ1和 QMGRHQ2上,从而被应用程序处理。这样一来,我们将业务负载均衡到了总部的多台服务器上,并且随着业务量的增加,我们可以随时增加主机,并且做到了对客户端的省级服务器的透明性,就此提高了整个系统的扩展性。
更多精彩
赞助商链接