繁体   English   中英

为Java Web应用程序实现高可用性

[英]Achieving High Availability for java webapplication

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

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

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

负载平衡也是要研究的问题。

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

通过冗余在应用程序的所有层中消除单点故障。 您可以按照“如果X失败会发生什么”的方式问自己一些问题,然后找到减轻这种风险的方法。

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

  1. 操作
  2. 建筑,设计,代码

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

操作注意事项包括:扩展部署,包括负载平衡,灾难恢复,CDN(如果可能)和监视。 持续的部署注意事项也很重要。

架构->代码注意事项众多且意义重大。 从解决方案的体系结构到代码的可维护性,以及最难实现的布局:正确性。 我最好的建议:雇用有经验的人。 那失败了,请有经验的人看书。

同样,在Java世界中,重要的是要认识到这一重要事实:它可能是以前写的。 这是个好消息! 许多非常聪明的人花了无数小时为您编写代码并在[Jakarta] Apache,Google Code,Codehaus,Sourceforge和许多其他开源网站上免费提供了这些代码。 您对问题进行的研究越多,就会发现这些参与者越来越多。 一个重要的技能是确定哪种可用软件适合您。

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

要开始,您需要:

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM