我尝试用JBoss和Apache实现高可用性服务。
其架构是:
Apache
| |
| |
JBoss1 JBoss2 有一个从Apache到JBoss的平衡器,它运行得很好。有时请求是由JBoss1接收的,有时是由JBoss2接收的,但是如果某个Jboss出现故障,平衡器仍然会向它发送请求,所以应用程序有时工作,有时不工作。
我如何实现一个服务来检测如果某个JBoss关闭,它会自动地将流量重定向到另一个节点?
我尽力了,但我解决不了。
发布于 2012-07-30 10:27:04
它是mod_proxy+mod_proxy_balancer或mod_jk的内置特性。
他们依赖于AJP协议:https://community.jboss.org/wiki/UsingModproxyWithJBoss
跟着这个教程就好。
这里是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/server/default/deploy/jbossweb.sar/server.xml
<Engine name="jboss.web" defaultHost="localhost" jvmRoute="SRVLNX01_node1">
[...]
</Engine>您还可以查看HA代理
https://serverfault.com/questions/407249
复制相似问题