我有一个带有两个实例的 Glassfish v2u2 集群,我想在它们之间进行故障转移。我读过的关于这个主题的每个文档都说我应该在 Glassfish 前面使用负载均衡器,比如 Apache httpd。在这种情况下,故障转移有效,但我再次遇到单点故障。Glassfish 是否能够在没有负载均衡器的情况下进行故障转移?
kovica
问问题
3097 次
3 回答
1
我们解决了这个问题,我们有两个 IP 地址,它们都响应 URL。DNS 提供商 ( DNS Made Easy ) 将在两者之间循环。将超时设置为低将确保如果一台服务器发生故障,另一台服务器将应答。当一台服务器停止响应时,DNS Made Easy 只会发送另一台主机作为服务器来响应此 URL。您必须信任 DNS 提供商,但您可以购买具有极高可用性的 DNS 查找服务
至于高可用性,您可以设置允许会话复制的集群设置,这样用户不会丢失超过一个可能失败的请求。
于 2009-03-06T16:06:52.097 回答
0
嗯.. 根据文档 ( http://docs.jboss.org/jbossas/jboss4guide/r4/html/cluster.chapt.html ) 第 16.1.2.1 章,JBoss 可以在没有负载均衡器的情况下进行故障转移。客户端拦截器。
据我所知 glassfish 集群提供节点之间的内存会话复制。如果我使用 Suns Glassfish Enterprise Application Server,我可以使用保证 99.999% 可用性的 HADB。
于 2009-01-08T08:20:29.150 回答
-1
不,您不能在应用程序级别执行此操作。
您的选择是:
- 轮询 DNS - 将您的两个服务器都暴露在互联网上并让客户端进行负载平衡 - 这非常有吸引力,因为它肯定会启用故障转移。
- 使用不同的第 3 层负载平衡系统——例如“Windows 网络负载平衡”、“Linux 网络负载平衡”或我写的称为“ Fluffy Linux 集群”的系统
- 使用具有故障转移热备件的单独负载平衡器
在任何这些情况下,您仍然需要确保您的数据库和会话数据等可用并且在集群成员之间同步,这在实践中要困难得多。
于 2009-01-08T07:39:11.480 回答