Wildfly 10 как балансировщик нагрузки
Как мы можем использовать wildfly10
в качестве баланса нагрузки без mod_proxy, mod_jk, mod_cluster
?
я имею 20 servers
которые standalone
и наше требование состоит в том, чтобы сбалансировать нагрузку с wildfly 10
только.
1 ответ
Это находится в руководстве и доступно через основной поиск:
https://docs.jboss.org/author/display/WFLY10/Using+Wildfly+as+a+Load+Balancer?_sscc=t
В Wildfly 10 добавлена поддержка использования подсистемы Undertow в качестве балансировщика нагрузки. Wildfly поддерживает два разных подхода: вы можете либо определить статический балансировщик нагрузки, и указать внутренние хосты в вашей конфигурации, либо использовать его в качестве внешнего интерфейса mod_cluster, а также использовать mod_cluster для динамического обновления хостов.
Чтобы использовать WildFly в качестве статического балансировщика нагрузки, первым делом необходимо создать прокси-обработчик в подсистеме Undertow. Для целей этого примера мы предполагаем, что наш балансировщик нагрузки будет балансировать нагрузку между двумя серверами, sv1.foo.com и sv2.foo.com, и будет использовать протокол AJP.
Первым шагом является добавление обработчика обратного прокси в подсистему Undertow:
/subsystem=undertow/configuration=handler/reverse-proxy=my-handler:add()
Затем нам нужно определить привязки исходящих сокетов для удаленных хостов.
/socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=remote-host1/:add(host=sv1.foo.com, port=8009)
/socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=remote-host2/:add(host=sv2.foo.com, port=8009)
и чем мы добавим их в качестве хостов для обработчика обратного прокси
/subsystem=undertow/configuration=handler/reverse-proxy=my-handler/host=host1:add(outbound-socket-binding=remote-host1, scheme=ajp, instance-id=myroute, path=/test)
/subsystem=undertow/configuration=handler/reverse-proxy=my-handler/host=host2:add(outbound-socket-binding=remote-host2, scheme=ajp, instance-id=myroute, path=/test)
Теперь нам нужно добавить обратный прокси к локации. Я собираюсь предположить, что мы обслуживаем путь / приложение:
/subsystem=undertow/server=default-server/host=default-host/location=\/app:add(handler=my-handler)
Это все, что нужно сделать. Если вы укажете свой браузер на http://localhost:8080/app, вы сможете увидеть прокси-контент.