关于为基于Servlet的Java web应用程序设置负载平衡和故障转移的书籍/参考资料

关于为基于Servlet的Java web应用程序设置负载平衡和故障转移的书籍/参考资料,java,web-applications,load-balancing,redundancy,failovercluster,Java,Web Applications,Load Balancing,Redundancy,Failovercluster,我们正在使用Java和Servlet技术(实际上是表示层的Wicket)创建一个web系统,我们需要我们的系统几乎总是可用的,因为我们的客户将非常依赖它 这促使我们寻找一本关注该主题的好书或其他资源,解释如何为我们的系统建立一个更冗余和故障安全的体系结构 我们目前的非排他性问题清单: 您如何拥有一个域名(如),它实际上由多个服务器提供服务,并通过负载平衡来分配用户?在这样的解决方案中,是否总有一点比较薄弱(这两个[因为不可能有更多的]google.com DNS服务器) 使用多个数据库服务器进

我们正在使用Java和Servlet技术(实际上是表示层的Wicket)创建一个web系统,我们需要我们的系统几乎总是可用的,因为我们的客户将非常依赖它

这促使我们寻找一本关注该主题的好书或其他资源,解释如何为我们的系统建立一个更冗余和故障安全的体系结构

我们目前的非排他性问题清单:

  • 您如何拥有一个域名(如),它实际上由多个服务器提供服务,并通过负载平衡来分配用户?在这样的解决方案中,是否总有一点比较薄弱(这两个[因为不可能有更多的]google.com DNS服务器)
  • 使用多个数据库服务器进行冗余和负载平衡似乎是个好主意。这是如何设置的
  • 如果我们的一台web服务器出现故障,我们希望进行某种故障转移,让用户使用一台仍在运行的服务器。除其他事项外,会话必须以某种方式同步。这是如何设置的
  • 我们也需要某种类型的同步事务吗
  • 亚马逊计算机云对我们来说是一个好的选择吗?我们如何在那里设置它?是否有成本效益高的替代方案
  • 我们需要在JBoss或Glassfish这样的JavaEE容器中运行吗

这可能是一种过于简单的方法,但我最近实施了一种类似的负载平衡和高可用性解决方案。
我的应用程序使用Tomcat作为web容器和MySQL数据库。我使用ApacheHTTP服务器作为Tomcat的前端,并使用ApacheMod_jk2模块作为接口来处理负载平衡和故障切换

从Apache文档开始,web上有大量可用的资源。以下是一些:

对于MySQL,请查看MySQL代理以实现负载平衡和故障切换。有多个数据库服务器用于负载平衡和故障转移是个好主意。一组数据库可以用于读取,另一组用于写入。根据卷的不同,您可能希望为读/写分配更多/更少的服务器。您的数据库文档还可以帮助您进行配置


HTH.

我的一个朋友说这是关于这个主题的权威性书籍:

Theo Schlossnagle也可能感兴趣。

Liferay wiki有一个条目概述了一个可以作为起点的架构。

我刚刚读完。关于企业系统的可扩展性、可用性、性能、安全性和许多其他方面的出色介绍

关于GlassFish,通过管理GUI进行集中管理对于需要管理多个appserver实例的环境有很大帮助。“始终可用”已过载。它可以是故障时没有会话保留的服务可用性,也可以是备份会话信息的数据可用性。当然,玻璃鱼两者都可以。关于GlassFish和高可用性,有一些资源可能会有所帮助:

GlassFish高可用性指南:

在10分钟内设置GlassFish群集:


GlassFish Group产品经理John Clingan

我将此解决方案解释为一切都取决于单点故障,即运行mod_jk2的Apache服务器。我说得对吗?如果我是正确的,那么这个解决方案没有比Apache服务器本身的网络连接(即仅一条路径)和启动时间更高的可用性了?它看起来很有趣,Amazon客户对它给予了很好的评价。同时,它没有关注Java,但如果它解决了许多其他相关的问题解决方案,那么这可能并不重要!(如果我喜欢,我会回来投票)我还需要一些以Java为中心的东西,这些图表非常吸引人!)