从 WebSphere Application Server Community Edition ( 以下简称 WAS CE) 版本 2.1 以来,WAS CE 在 Tomcat native 集群之外,新增了对 WADI 集群的支持。相比于 Tomcat native 集群,WADI 集群同样提供了集群成员间 Session 复制来避免单点失效并实现灾难恢复,同时利用负载平衡来提高应用程序的可用性。另外在一个部署了 Farming 的 WAS CE 集群环境中,如果您在某个节点上进行应用程序部署或者生命周期管理,集群内的所有节点都会同步响应这些请求。Farming 这个特性使得应用程序的管理 ( 如部署、启动、停止、以及卸载 ) 更加的逻辑化和透明化:通过一次部署 , 便可以将应用部署到 WAS CE 服务器集群中的每个节点;同样,只需一次操作,便可以管理集群内所有节点上该应用程序的生命周期。这篇文章将从实现机制和示例配置两方面对 WAS CE WADI 集群和 Farming 插件进行介绍
引言
WebSphere Application Server Community Edition(以下简称 WAS CE)是一个完全符合 Java Platform, Enterprise Edition 5(Java EE 5)规范、经认证的应用服务器。也就是说 WAS CE 包含所有支持 Java EE 5 实现的组件:Web 容器、EJB 容器、消息服务、命令行管理等开发和运行 Java EE 应用程序所需的环境。尽管 Java EE 5 的规范中并没有提供对集群实现的规范要求,但在实际的应用环境中,集群做为提供应用程序的扩展性以及保证其高可用性的常见解决方案,得到了非常广泛的使用。要实现集群,常见的做法是通过扩展多个服务器节点,使得会话以及节点信息在集群内复制传递,以此来保证应用程序的高可靠性。但随着集群内节点的增多,怎样保证集群的效率以及应用程序的可用性呢?尤其是在异构的应用服务器环境中,有什么较理想的解决办法吗?另外,为了实现集群中各个节点能够协调统一,每个节点上面都需要配置相同的应用程序,有什么比较好的办法能够进行批量部署,从而提高集群管理的效率?本文依次通过介绍 WAS CE 服务器中集成的 WADI 模块和 Farming 模块,向读者解答前面提到的问题,并将在文末通过具体实例演示在 WAS CE 服务器环境中如何使用 WADI 和 Farming 模块搭建 WAS CE 集群。文中所提及的内容为作者的学习总结,仅供读者参考,以帮助读者了解相关概念并熟悉部署过程,所述观点并不代表 IBM 。
WADI 集群的实现机制
WADI 的全称是 Web Application Distribution Infrastructure, 即 Web 应用程序分布式架构,从它的名字我们可以看出,WADI 这个项目设立的初衷是为了解决集群环境中 Web 层应用程序状态的管理。随着项目的逐渐成熟,再加上 WADI 自己独有的特性和解决方案,它已经演变成一个更加通用的分布式状态和服务管理框架。由于 WADI 是一个独立的开源项目,不依赖于任何现有的应用程序容器,因此在一个异构的环境中,WADI 的作用和意义就更为突出。
WAS CE 从版本 V2.1 开始,便将 WADI 集成到了自己的服务器分发包中,这样,WAS CE 的用户除了选用原有的 Tomcat 集群以外,还可以考虑选用 WADI 的集群方案。
WADI 简介及其特性
WADI 的设计目标简要概括为如下几点:
为分布式环境中提供可插拔的、栈式的页面调度(paging)和持久化(persistence)机制;
提供一个伸缩性强、可用性高、自分割(self-partitioning)和自愈合 (self-healing) 的集群基础;
提供状态到请求(State to Invocation)或者请求到状态(Invocation to State)的透明迁移(migration);
提供可插拔的状态复制机制。