我要解释一下我的情况。
背景:
我在Open Nebula上运行了三个虚拟机Debian Jessie,一个是主人,另外两个是奴隶。在其中我安装了JBoss AS 7.1和mod_cluster 1.2。
目标:
运行有状态的应用程序,因此当我关闭主服务器时,群集允许我继续使用具有共享会话的应用程序并保留变量值。
我跟着this guide使用了给定的Web应用程序。
错误:
配置文件
我附上配置文件:
答案 0 :(得分:0)
mod_cluster与消息传递(JMS,HornetQ)子系统没有任何共同之处。 mod_cluster设置与集群子系统没有任何共同之处,即Infinispan及其主力,JGroups。
AS7 mod_cluster子系统所做的是侦听Apache HTTP Server mod_cluster模块发出的UDP多播广告消息。当它收到此类消息时,它会向您的Apache HTTP Server负载均衡器注册自己。从那时起,您注册的AS7“worker”节点不断发送专用HTTP消息(通过TCP),通知Apache HTTP Server:
如果没有向您的Apache HTTP Server平衡器注册工作节点,则没有上下文,因此无法将您的请求转发给。
根据您发布的配置,您依赖于从224.0.1.105:23364发送/接收的UDP多播消息。
Open Nebula可能不允许主机之间的UDP多播,或者你的iptables阻止了它。试试这个:
EnableMCPMReceive
的VirtualHost。<mod-cluster-config advertise-socket="modcluster" proxy-list="your-httpd-address:port">
- 您刚尝试使用curl的那个请不要在您的Apache HTTP Server上使用mod_cluster 1.2.0。该版本完全过时,它包含严重的错误,包括代码注入CVE和严重的性能问题。如果您需要httpd 2.2.x支持,请下载mod_cluster 1.3.1.Final for httpd 2.4.x或构建您自己的from the sources。如果您碰巧需要任何帮助,请询问。