В настоящее время я стажер в своей компании. Мой босс в основном хочет, чтобы я выполнил переключение с JBoss AS на другой просто для подтверждения концепции. Балансировка нагрузки не требуется, поскольку мне нужно только показать 1 клиента, подключенного к JBoss 1, выполнить аварийное переключение, и который клиент автоматически подключится к JBoss 2.
На данный момент я могу кластеризовать 2 JBoss AS с помощью команды «ran.bat -c all» с разных терминалов, работающих под управлением Windows. А теперь вот мои вопросы
1) Что мне делать, чтобы настроить аварийное переключение для JBoss
2) Какое самое простое и быстрое приложение я должен написать, чтобы разместить его на JBoss, чтобы JBoss мог выполнить переключение с одного JBoss на другой?
Мы будем очень благодарны за любые советы и заранее большое спасибо.
Кевин
Jboss не поддерживает http LB. Каждый узел прослушивает свой порт. http-сессии реплицируются / распространяются. Если ваш начальник настаивает, вы можете использовать прокси-сервер HAJNDI Smart, а не http. Просто инициируйте контекст именования из вашего клиентского приложения в порт HAJNDI (1101), найдите свое приложение EJB3 и вызовите любой удаленный метод. Когда подключенный узел не работает, интеллектуальный прокси будет знать, что нужно переключиться.
У вас должен быть apache или iis перед кластером.
В основном вы используете mod_jk, mod_proxy_ajp или mod_cluster, чтобы управлять переключением при отказе и липкостью сеансов.
Теперь предположим, что у вас есть 2 сервера jboss (192.168.1.2 и 192.168.1.3) и 1 apache 2.2.x, и вы хотите использовать mod_jk для простоты (если вы хотите, чтобы 2 apache выполняли HA на уровне http, вам понадобится балансировщик нагрузки какой-то).
Первым делом вы скачиваете mod_jk 1.2.30 поскольку он предлагает лучшие возможности для обнаружения неисправного узла. и поместите его в каталог модулей apache server_root.
затем вы переходите к httpd.conf и добавляете:
LoadModule jk_module modules/mod_jk-1.2.30-httpd-2.2.3.so
Следующее, что вам нужно сделать, это создать файл с именем worker.properties со следующим содержимым
worker.list=loadbalancer,status
worker.template.port=8009
worker.template.type=ajp13
worker.template.ping_mode=A
worker.template.reply_timeout=90000
worker.template.socket_connect_timeout=10000
worker.template.connection_pool_size=150
worker.template.socket_keepalive=true
worker.node1.reference=worker.template
worker.node1.host=192.168.1.2
worker.node2.reference=worker.template
worker.node2.host=192.168.1.3
worker.loadbalancer.type=lb
worker.loadbalancer.balance_workers=node1,node2
worker.loadbalancer.sticky_session=True
worker.status.type=status
Затем в файле httpd.conf вы добавляете следующие строки:
JkWorkersFile conf/workers.properties
JkWatchdogInterval 60
JkMount /* loadbalancer
JkLogFile logs/mod_jk.log
затем перейдите к конфигурации jboss для 192.168.1.2
в файле JBOSS_HOME / server / all / deploy / jbossweb.sar / server.xml
<Engine name="jboss.web" defaultHost="localhost" jvmRoute="node1">
и замените или измените это:
<Connector protocol="AJP/1.3" port="8009" address="${jboss.bind.address}"
redirectPort="8443" />
с этим:
<Connector port="8009" address="${jboss.bind.address}" protocol="AJP/1.3"
emptySessionPath="true" enableLookups="false" redirectPort="8443"
maxThreads="200" connectionTimeout="600000" />
затем перейдите к конфигурации jboss для 192.168.1.3
в файле JBOSS_HOME / server / all / deploy / jbossweb.sar / server.xml
<Engine name="jboss.web" defaultHost="localhost" jvmRoute="node2">
и замените или измените это:
<Connector protocol="AJP/1.3" port="8009" address="${jboss.bind.address}"
redirectPort="8443" />
с этим:
<Connector port="8009" address="${jboss.bind.address}" protocol="AJP/1.3"
emptySessionPath="true" enableLookups="false" redirectPort="8443"
maxThreads="200" connectionTimeout="600000" />
Объяснение: изменение тега коннектора ограничивает потоки в веб-контейнере до 200 (т. Е. Это максимальное количество одновременных запросов, которое может обрабатывать) connectionTimeout гарантирует, что если клиент закрывает соединение (это означает «закрывает браузер», ") поток истекает через 600 секунд неиспользования.
Вы можете найти размеры для этих параметров в этом приложении appspot, созданном командой jboss: lbconfig.appspot.com
СООБРАЖЕНИЯ БЕЗОПАСНОСТИ: Защитите или отключите jmx-console и / или веб-консоль, удалив каталоги jmx-console.war и management из папки развертывания или следуя инструкциям в этом документ
Вы можете найти больше информации о балансировке нагрузки, mod_jk, mod_cluster в jboss вики