1

有哪些工具可以实现 Java Web 应用程序的高可用性。

4

5 回答 5

2

主要使用方法不是工具。它被称为“优质软件”——即您必须正确处理所有资源(包括同步)。

Apache Hadoop可用于分发和扩展系统。但这是针对大型应用程序的。

负载平衡也是需要研究的东西。

于 2010-06-15T14:20:34.703 回答
1

也许您正在寻找集群解决方案?有 Terracotta 的 JVM Clustering 的开源版本

于 2010-06-15T14:22:02.140 回答
1

通过应用程序所有层的冗余消除单点故障。你可以问自己“如果 X 失败会发生什么”这样的问题,然后找到降低风险的方法。

于 2010-06-15T14:23:36.670 回答
1

您必须解决至少两个主要方面:

  1. 操作
  2. 架构、设计、代码

这些元素中的每一个都是大问题。例如,有几个专门针对这些的好站点(分别参见 serverfault.com 和 stackoverflow.com)。

操作注意事项包括:扩展部署,包括负载平衡、灾难恢复、CDN(如果可能)和监控。正在进行的部署考虑也很重要。

架构 -> 代码考虑因素很多且意义重大。从解决方案的架构,到代码的可维护性布局,以及最难实现的:正确性。我最好的建议:聘请有经验的人。那失败了,从有经验的人那里阅读书籍之类的。

此外,在 Java 世界中,接受这一重要事实非常重要:它很可能是以前编写的。这是个好消息!许多非常聪明的人花费了无数小时为您编写代码,并在 [Jakarta] Apache、Google Code、Codehaus、Sourceforge 和许多其他开源站点等地方免费提供。您对问题进行的研究越多,您会发现这些玩家出现的次数越多。一项重要的技能是确定哪些可用软件适合您。

人们通过选择的特定技术提供了其他答案,其中许多都是很好的建议,但这一切都归结为您要解决的实际问题,只有您知道那是什么(好吧,问题并没有告诉我们无论如何:D)。

于 2010-06-15T14:45:00.737 回答
0

要开始,您需要:

  1. 可以同时在多个 Web 服务器上运行的 Web 应用程序。
  2. 一个负载平衡前端,可以检测失败的 Web 服务器并将流量路由到其他实时实例。这部分不必使用 Java。您需要在负载均衡器和 Web 应用容器之间找到集成点。

在进行初始设置后,您将需要找到其他可能的故障点,如数据库服务器、负载平衡服务器本身、DNS 服务器等,然后尝试在这些层添加冗余和故障转移切换。

您还应该考虑硬件解决方案,如 RAID、SAN 等。

于 2010-06-15T14:31:35.300 回答