我试图用JBoss和Apache来实现高可用性服务。
架构是:
Apache | | | | JBoss1 JBoss2
从Apache到JBoss都有一个平衡器,工作正常。 有时这个请求是由JBoss1来完成的,有时由JBoss2来完成,但是如果一些Jboss发生故障,平衡器仍然向它发送请求,所以应用程序有时会工作,有时候不会。
我怎样才能实现一个服务,检测到如果一些JBossclosures,它会自动redirect到另一个节点的stream量?
我试着听,但我解决不了。
这是mod_proxy + mod_proxy_balancer或mod_jk的内置function。
他们依靠AJP协议: https : //community.jboss.org/wiki/UsingModproxyWithJBoss
只要按照这个教程。
这里是一个Apache HTTPconfiguration的例子:
<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 / server / default / deploy / jbossweb.sar / server.xml
<Engine name="jboss.web" defaultHost="localhost" jvmRoute="SRVLNX01_node1"> [...] </Engine>
您也可以看看HA代理