1

We have 5000+ clients, 10 gateway servers and 6 backend servers. Both gateway and backend Servers are in same cluster. If v7.0.1 is used on clients and gaetway servers, is round robin load balancing possible if CCDT is used? We want distribute load even across all the 10 gateway servers.

Thank You

4

1 回答 1

2

太好了,您在客户端和服务器上都使用 WMQ v7.0.1!获得负载平衡的诀窍在于如何在 CCDT 中标记通道。当您构建 CCDT 文件时,QMNAME 参数不需要匹配实际的 QMgr 名称。事实上,将其称为 QMNAME 是相当不幸的,因为它会导致期望它与客户端连接的 QMgr 名称之间存在某种关联。实际上,它只是客户端应用程序在搜索 CCDT 时使用的索引。

因此,当您为 10 个 QMgr 构建 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 参数,如 V7 文档中的“通道加权和关联示例”部分所述。我建议通读整个父部分Connecting WebSphere MQ client applications to queue manager,尤其是关于 CCDT 和 MQCONN 的部分。

于 2010-06-18T13:23:12.340 回答