Назад | Перейти на главную страницу

Как я могу реализовать службу высокой доступности с JBoss 5?

Я пробовал реализовать службу высокой доступности с JBoss и Apache.

Архитектура:

  Apache
|         |
|         |
JBoss1 JBoss2 

Балансировщик реализован от Apache до JBoss'ов, и он работает нормально. Иногда запрос принимает JBoss1, а иногда JBoss2, однако, если какой-то Jboss выходит из строя, балансировщик все равно отправляет ему запросы, поэтому приложение иногда работает, а иногда нет.

Как я могу реализовать службу, которая обнаруживает, что если какой-то JBoss не работает, он автоматически перенаправляет трафик на другой узел?

Я пробовал с биением, но не могу решить.

Это встроенная функция mod_proxy + mod_proxy_balancer или mod_jk.

Они полагаются на протокол AJP: https://community.jboss.org/wiki/UsingModproxyWithJBoss

Просто следуйте этому руководству.

Вот пример конфигурации HTTP Apache:

<VirtualHost *:80>

    ServerName web-gui-acceptance.myorg.com
    ServerAlias web-gui-acceptance


    ProxyRequests Off
    ProxyPass /web-gui balancer://jbosscluster/web-gui stickysession=JSESSIONID nofailover=On
    ProxyPassReverse /web-gui http://srvlnx01.myorg.com:8080/web-gui
    ProxyPassReverse /web-gui http://srvlnx02.myorg.com:8080/web-gui

    <Proxy *>
      AuthType Kerberos
      [...]
    </Proxy>

    <Proxy balancer://jbosscluster>
        BalancerMember ajp://srvlnx01.myorg.com:8009 route=SRVLNX01_node1
        BalancerMember ajp://srvlnx01.myorg.com:8009 route=SRVLNX02_node1
        ProxySet lbmethod=byrequests
    </Proxy>

</VirtualHost>

И для каждого экземпляра JBoss:

vi $ JBOSS_HOME / сервер / по умолчанию / развертывание / jbossweb.sar / server.xml

<Engine name="jboss.web" defaultHost="localhost" jvmRoute="SRVLNX01_node1">
    [...]
</Engine>

Вы также можете посмотреть HA прокси