我们拥有5000多个客户端,10个网关服务器和6个后端服务器。网关和后端服务器都在同一个集群中。如果在客户端和高速公路服务器上使用v7.0.1,如果使用CCDT,是否可以进行循环负载平衡?我们希望在所有10个网关服务器上分配负载。
谢谢
答案 0 :(得分:2)
很高兴您在客户端和服务器上都使用WMQ v7.0.1!获得负载平衡的技巧在于如何标记CCDT中的通道。构建CCDT文件时,QMNAME参数不需要与实际的QMgr名称匹配。事实上,称之为QMNAME是相当不幸的,因为它导致期望它与客户端连接的QMgr名称之间存在某种关联。实际上,它只是客户端应用程序在搜索CCDT时使用的索引。
因此,当您为10个QMgrs构建CCDT时,每个都需要不同的通道名称,但对所有通道名称使用相同的QMgr名称。例如,
DEF CHL(QMGR01.CLNT) CHLTYPE(CLNTCONN) QMNAME(GTWY.QMGR)
DEF CHL(QMGR02.CLNT) CHLTYPE(CLNTCONN) QMNAME(GTWY.QMGR)
...
DEF CHL(QMGR10.CLNT) CHLTYPE(CLNTCONN) QMNAME(GTWY.QMGR)
然后当应用程序需要连接时,它指定GTWY.QMGR作为QMgr名称。这解析为通道条目组。
好的,这样可以让您进行故障转移,但不会进行负载平衡。要获得负载平衡,您需要设置CLNTWGHT和AFFINITY参数,如Examples of Channel Weighting and Affinity部分中的V7文档中所述。我建议阅读整个父节Connecting WebSphere MQ client applications to queue managers,特别是关于CCDT和MQCONN的章节。