![如何防止mod_cluster成为单点故障?](https://linux22.com/image/795813/%E5%A6%82%E4%BD%95%E9%98%B2%E6%AD%A2mod_cluster%E6%88%90%E4%B8%BA%E5%8D%95%E7%82%B9%E6%95%85%E9%9A%9C%EF%BC%9F.png)
在我的配置中,我使用 Apche+mod_cluster 作为前端(负载均衡器)服务器,并使用两个 JBOSS AS 7.1.0 作为后端服务器。
在我的配置中,我在一个系统上安装了 Apache+mod_cluster + JBOSS AS 7.1.0,在另一个系统上安装了 JBOSS AS 7.1.0。两个 JBOSS AS 7.1.0 都处于域模式,即处于集群模式。
我的问题是,如果 Apche+mod_cluster 崩溃,客户端将无法访问任何 JBOSS AS。
我想以 Master_Slave 格式配置 Apache+mod_cluster,这意味着如果其中一个 Apache+mod_cluter 关闭,另一个 Apache+mod_cluster 变为活动状态并以正常形式将客户端(浏览器)请求传递给后端服务器,不会有任何中断。
有没有什么办法可以让两个 Apache+mod_cluster 相互通信,也就是说检查彼此的健康状态,如果任何一个宕机,其他 Apche+mod_cluster 就会执行它的任务……
答案1
众多选项之一是使用循环 DNS 进行负载平衡,这也可以作为“穷人的容错”
在应用服务器前面放置 2 个带有 apache+mod_cluster 的主机。我们将它们称为 apache-1 和 apache-2。将它们的 IP 添加到同一个 DNS 记录中。
您不需要任何主/从配置,一旦下一个请求达到 apache-2 而不是 apache-1,它将把它代理到后面的任何应用服务器:
- 如果所选的应用服务器具有用户会话,则提供该会话,
- 否则,会话将在整个集群中找到,迁移到当前选定的应用服务器并提供服务