Мы имеем 5000 + клиенты, 10 серверов шлюза и 6 серверов бэкэнда. И шлюз и серверы бэкэнда находятся в том же кластере. Если v7.0.1 используется на клиентах и gaetway серверах, действительно ли круговое выравнивание нагрузки возможно, если CCDT используется? Мы хотим, распределяют загрузку даже через все 10 серверов шлюза.
Спасибо
Замечательно, что вы используете WMQ v7.0.1 как на клиенте, так и на сервере! Уловка для получения балансировки нагрузки заключается в том, как вы помечаете каналы в CCDT. При построении файла CCDT параметр QMNAME не обязательно должен совпадать с фактическим именем QMgr.Фактически, называть его QMNAME довольно неудачно, потому что можно ожидать, что существует некоторая корреляция между этим именем и именем QMgr, к которому подключается клиент. Фактически, это просто индекс, который клиентское приложение использует при поиске в CCDT.
Итак, когда вы создаете CCDT для своих 10 QMgr, каждому потребуется другое имя канала, но используйте одно и то же имя 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 в разделе Примеры взвешивания каналов и соответствия . Я бы посоветовал прочитать весь родительский раздел Подключение клиентских приложений WebSphere MQ к администраторам очередей , особенно разделы о CCDT и MQCONN.