故障切换和恢复特性
当出现故障时,应用程序继续运行,并迅速解决问题以确保快速恢复是至关重要的。为了加快端到端应用程序故障切换的时间,OracleAS 10g 提供了多层次的故障切换通告。利用这个特性,OracleAS 10g 用户能够将与跨层次的应用程序故障切换相关的 TCP/IP 超时延迟从 15 分钟减少为 5 秒。
为了保护集群系统不受故障的影响,OracleAS 10g 采用了冷故障切换集群 (Cold Failover Clusters CFC),从而实现了从出现故障的主集群到一个从属集群的切换。为了获得更高的可用性,OracleAS 10g 甚至提供了活动故障切换 (Active Failover Clusters AFC)。如果一个节点出现了故障,接下来进入的请求将立即在剩余的节点之间重新分配,从而消除了任何停机时间。
OracleAS 10g 为何能够变得这么智能化和敏捷?一个原因是一个称为 Web Cache 的特殊的软件元素。由于 Oracle 10g 的出现,Web Cache 成为多层次应用程序中的第一层。
利用 Web Cache
OracleAS 10g Web Cache 是独一无二的,它确保了高性能和高可用性。Web Cache 还可以无缝地与来自 BEA、IBM、ATG、Sun、Apache 和 Microsoft 等的第三方应用程序和 web 服务器一起工作,因此它可以为您的整个 Web 体系结构提供帮助 — 无论它是否建立在 Oracle 之上。
下面我们将研究 OracleAS 10g Web Cache 的高可用性功能,高性能特性留待我们的第 2 部分再讨论。
Web Cache 面向服务器节点,并像常规的高速缓存一样,响应所有的入站 HTTP 请求,并根据每台 Web 服务器的容量分配这些请求。回到我们假定的由节点 A、B 和 C 组成的集群中,我们可以配置 Web Cache 来将 30% 的负载分配给 Web 服务器 A,另外的 30% 给 Web 服务器 B,40% 给 Web 服务器 C。
OracleAS 10g Web Cache 有一个关键的优点:如果三台服务器中的一台出现了故障,Web Cache 自己可以自动将该负载的 50% 重新分配到剩余的两台 Web 服务器上。当出现故障的服务器回到在线状态时,Web Cache 将负载重新分配回所有的三台服务器,而所有这些对用户都是透明的。
OracleAS 10g 还自带了许多有助于改善应用程序内部的数据可用性的特性 — 甚至当应用程序扩展和使用率增加时。这些特性包括智能化的路由和管理工具,这些工具使 OracleAS 10g 能够执行容量驱动的路由,其实质是预先关注集群中服务器的容量,然后相应地均衡进入的负载。这种路由智能化与 Web Cache 一起创建了一个对内容敏感的负载均衡系统,以分配所有的 HTTP 请求。
与 OracleAS 10g 其它的可用性特性协作,Web Cache 解决了使用商用服务器的一个关键问题:当出现故障时,如何自动调整服务器负载,而无需重新配置服务器或引入单个故障节点。 接下来的步骤
下载 OracleAS Containers for J2EE 10g 开发人员预览版。
下载 Oracle Application Server。
访问并收藏网格技术中心。
阅读 Oracle Application Server 10g 其它内容和白皮书。
但如果在这个 Web Cache 层出现了故障,情况会怎样?这不会成为单个故障节点吗?回答当然是“不会”。在 OracleAS 10g 中能够让一个 Web Cache 与集群中其它的 Web Caches 通信,从而将它们连接在一起来提高总体的缓存容量。这种通信还可以在一个高速缓存集群成员出现故障时检测出来。例如,如果一个节点上的高速缓存出现故障,则集群中其它的成员可以承担额外的高速缓存负载 — Web Cache 可以无缝地处理它自身的故障。
Web Cache 仅是 OracleAS 10g 中所带的各种各样性能和可用性元素中的一个。在其表面之下,您将发现一个轻型且非常强大的 J2EE 引擎,它具有一个令人吃惊的微小内核。在第 2 部分中,我们将讨论许多用来部署和管理您的 Web 应用程序的命令和控制工具。以及具有记录回放功能的监控和分析工具,以根据实际用户的经验确保一切都优化地运行。而在性能方面,OracleAS 10g 提供了几个加速您的应用程序的选项 — 单独使用 Web Cache 就可以加速您的应用程序达 20 倍。但这是第 2 部分要讨论的内容……
Sudhakar Ramakrishnan 是 OTN 的一个高级技术编辑。他最近因撰写了“中间件体系结构系列”而被授予 Oracle 创新奖。他在分布式计算方面具有八年多的经验,他从事过 Oracle 应用服务器中 EJB 的集成以及 Oracle Discoverer 的三层版本的创建。他还是 1,000-plus-strong Mountain View Java 用户群体的创始人,曾担任其负责人超过四年时间。