Sun Java System Application Server 9.1 高可用性管理指南

高可用性概述

无论硬件和软件故障,高可用性应用程序和服务均可持续提供其正常功能。这些应用程序有时被称为提供五个九可靠性的应用程序,因为它们 99.999% 的时间都可用。

Application Server 提供以下高可用性功能:

高可用性会话持久性

Application Server 提供了 HTTP 请求和会话数据(HTTP 会话数据和有状态会话 Bean 数据)的高可用性。

Java EE 应用程序通常具有大量会话状态数据。Web 购物车是会话状态的一个典型示例。此外,应用程序可以高速缓存会话对象中需要频繁使用的数据。事实上,几乎带有重要用户交互的所有应用程序都需要维护会话状态。HTTP 会话和有状态会话 Bean (stateful session bean, SFSB) 都具有会话状态数据。

保留故障服务器之间的会话状态对最终用户非常重要。为了实现高可用性,Application Server 为会话状态数据提供了以下类型的存储:

如果托管用户会话的 Application Server 实例出现故障,则可以恢复会话状态,并且会话可以继续进行而不会丢失信息。

有关如何设置高可用性会话持久性的详细说明,请参见第 9 章,配置高可用性会话持久性和故障转移

高可用性 Java 消息服务

Java 消息服务 (Java Message Service, JMS) API 是一种通讯标准,使 Java EE 应用程序和组件可以创建、发送、接收和读取消息。并启用了松散耦合的可靠异步分布式通信。Sun Java System Message Queue (MQ)(实现了 JMS)与 Application Server 紧密集成,使您可以创建诸如消息驱动 bean (message-driven bean, MDB) 之类的依赖 JMS 的组件。

通过连接池、故障转移和 MQ 群集,JMS 实现了高可用性。有关更多信息,请参见第 10 章,Java 消息服务的负载平衡和故障转移

连接池和故障转移

Application Server 支持 JMS 连接池和故障转移。Application Server 将自动实现 JMS 连接池。默认情况下,Application Server 从指定的主机列表中随机选择其主 MQ 代理。发生故障转移时,MQ 会将负载透明地转移到另一个代理,并维持 JMS 语义。

有关 JMS 连接池和故障转移的更多信息,请参见连接池和故障转移

MQ 群集

MQ 企业版支持多个互连代理实例(称为代理群集)。使用代理群集的情况下,客户机连接将分布在群集的所有代理中。群集可以提供水平可伸缩性并提高可用性。

有关 MQ 群集的更多信息,请参见结合使用 Application Server 与 MQ 群集

RMI-IIOP 负载平衡和故障转移

通过 RMI-IIOP 负载平衡,IIOP 客户机请求被分发到不同的服务器实例或名称服务器上,这样就会将负载平均地分布在群集中,从而提供了可伸缩性。与 EJB 群集和可用性结合的 IIOP 负载平衡还可提供 EJB 故障转移。

客户机执行对象的 JNDI 查找时,命名服务实际上会将请求绑定到特定的服务器实例。此后,所有从该客户机发出的查找请求都被发送到同一服务器实例,因此将在同一目标服务器上托管所有 EJBHome 对象。此后获得的所有 Bean 引用也创建在相同的目标主机上。这样就有效提供了负载平衡,因为所有客户机在执行 JNDI 查找时会随机使用目标服务器的列表。如果目标服务器实例发生故障,查找或 EJB 方法调用会将故障转移到另一个服务器实例。

IIOP 负载平衡和故障转移将透明地发生。在应用程序部署过程中无需特殊的步骤。如果在其上部署应用程序客户机的 Application Server 实例参与群集,则 Application Server 将自动查找群集中当前处于活动状态的所有 IIOP 端点。但是,客户机应该至少已指定两个端点以用于引导目的,以防其中一个端点出现故障。

有关 RMI-IIOP 负载平衡和故障转移的更多信息,请参见第 11 章,RMI-IIOP 负载平衡和故障转移

更多信息

有关规划高可用性部署(包括评估硬件要求、规划网络配置和选择拓扑)的信息,请参见《Sun Java System Application Server 9.1 部署规划指南》。本手册还对以下概念进行了高层次的介绍:

有关开发利用高可用性功能的应用程序的更多信息,请参见《Sun Java System Application Server 9.1 Developer’s Guide》

调优高可用性服务器和应用程序

有关如何配置和调优应用程序和 Application Server 以获得高可用性的最佳性能的信息,请参见《Sun Java System Application Server 9.1 Performance Tuning Guide》,其中包括以下主题: