Sun Java System Application Server Enterprise Edition 8.2 高可用性管理指南

Application Server 如何提供高可用性

Application Server 通过以下子组件和功能提供高可用性:

负载平衡器插件

负载平衡器插件接受 HTTP/HTTPS 请求, 然后将请求转发至群集中的应用程序服务器实例。如果实例出现故障,变得不可用(由于网络故障)或无法响应,负载平衡器会将请求重定向至现有的可用计算机。负载平衡器还可识别故障实例何时恢复并相应地重新分布负载。Application Server Enterprise Edition 和 Standard Edition 提供用于 Sun Java System Web Server 和 Apache Web Server 以及 Microsoft Internet Information Server 的负载平衡器插件。

负载平衡器通过在多台物理计算机中分布工作量来提高系统的整体吞吐量。它还可通过对 HTTP 请求的故障转移提供更高的可用性。对于要保留的 HTTP 会话信息,您必须配置 HTTP 会话持久性。

对于简单的无状态应用程序,负载平衡群集可能足够了。但是,对于具有会话状态的重点应用程序,请将负载平衡群集与 HADB 一起使用。

参与负载平衡的服务器实例和群集必须具有同构环境。通常,这意味着服务器实例均引用相同的服务器配置、可以访问相同的物理资源,以及具有部署到其上的相同的应用程序。同构环境确保了在出现故障前后,负载平衡器可以始终在群集中的活动实例之间平均分布负载。

有关配置负载平衡和故障转移的信息,请参见第 5 章,配置 HTTP 负载平衡

高可用性数据库

Application Server Enterprise Edition 提供了高可用性数据库 (High Availability Database, HADB),以实现 HTTP 会话和有状态会话 Bean 数据的高可用性存储。HADB 旨在通过使用负载平衡、故障转移和状态恢复功能支持高达 99.999% 的服务和数据可用性。通常,您必须独立于 Application Server 来配置和管理 HADB。

不让 Application Server 承担状态管理职责会具有很多好处。Application Server 实例在它们的周期中作为可伸缩高性能应用程序容器执行,将状态复制委托给外部高可用性状态服务。由于采用这种松散耦合的体系结构,因此可以很轻松地向群集中添加 Application Server 实例或从群集中删除 Application Server 实例。HADB 状态复制服务可以单独进行伸缩,以获得最佳的可用性和性能。如果 Application Server 实例同时还执行复制任务,J2EE 应用程序的性能将会降低,并会受到较长的垃圾收集暂停的限制。

有关规划和设置应用程序服务器安装(包括确定硬件配置、调整大小和拓扑)以通过 HADB 实现高可用性的信息,请参见《Sun Java System Application Server Enterprise Edition 8.2 Deployment Planning Guide》中的“Planning for Availability”《Sun Java System Application Server Enterprise Edition 8.2 Deployment Planning Guide》中的第 3  章 “Selecting a Topology”

高可用性群集

群集是作为一个逻辑实体一起工作的 Application Server 实例的集合。群集为一个或多个 J2EE 应用程序提供了运行时环境。高可用性群集将状态复制服务与群集和负载平衡器集成在一起。

使用群集具有以下优点:

群集中的所有实例具有以下特性:

域中的每一个群集都具有唯一的名称;此外,该名称在所有节点代理名称、服务器实例名称、群集名称和配置名称中也必须是唯一的。此名称不能为 domain。您在群集上执行的操作与在非群集服务器实例上执行的操作相同(例如,部署应用程序和创建资源)。

群集和配置

群集的设置源自该群集可能与其他群集共享的命名配置。其配置不能被其他服务器实例或群集所共享的群集可视为具有独立配置。默认情况下,此配置的名称为 cluster_name-config,其中 cluster_name 表示群集的名称。

能与其他群集或实例共享其配置的群集可视为具有共享配置

群集、实例、会话和负载平衡

群集、服务器实例、负载平衡器和会话的相互关系如下:

因此,对于群集中的服务器实例,群集充当的是会话故障转移的安全边界。您可以在 Application Server 中使用负载平衡器和升级组件而不使服务受到任何损失。