1 原理
websphere 的Network Deploynment版本提供了群集的技术实现,他主要实现以下功能:
A) 实现负载均衡,根据群集中不同机器的访问容量能力来分配客户的请求
B) 提供容错功能,也就是当群集中某台服务器不能处理客户请求时,系统将客户的请求转发到群集中其他可用的服务器上
C) 提供了更好的可伸缩性,可以通过简单的配置使服务器能够给更多的客户提供服务,在群集中增加新的服务器实例、服务器端小应用程 序(serlets)或者其他内容如web应用都非常简单
D) 允许在不中断提供服务的情况下维护和更新服务器
E) 可以集中化管理群集中的服务器
其中的B)项将是本文关注的焦点。
1.1 术语
可管理对象 单独的服务器或者其它处理对象如应用服务器或者JMS服务器
节点 由一个或者多个可管理对象组成,通过节点代理进行管理
单元 节点的集合,一个单元的配置管理服务器通过节点代理管理单元中的所有节点以及和他们通信。
1.2 群集的逻辑结构
群集的逻辑结构如下图:

从该图中我们可以看到,每一个节点上都运行一个节点代理,还可以运行其它的一个或者多个可管理对象比如应用服务器或者JMS服务器,群集通过节点代理和节点上的可管理对象交换信息或者管理这些可管理对象。
[注意] 配置管理服务器保存着这个单元的主配置文件和应用文件,这种方式意味着以下两点:
1. 只有单元级所作的修改会被持久的保存下来, 在节点上所作的修改将视为"本地的",也就是说这些修改只会影响到被修改的节点,而不会对群集中的其它节点起作用。
2. 在节点上所作的修改将在群集的下一次同步动作时被修改,也就是说,下一次群集的同步动作发生时,该节点配置信息将被群集的主配置信息和应用文件等覆盖。
2 实现步骤
作者在这个章节中将给出建立群集详细步骤,也会对群集实现的具体效果做简单的描述。
2.1 前提条件
2.1.1 软件
本例中使用的软件主要包括websphere应用服务器(application server) 5。0 版本,websphere 网络配置服务器(Network Deployment) 5。0版本,其它用到的还有WSAD(Websphere Studio Application Developer)5。0版本等。
2.1.2 网络环境
在本实例中作者使用了2台服务器,他们处在同一个内部网络中,这两台机器的配置信息如下。
Bookman Mark
IP 202。197。40。36 202。197。40。252
安装软件 Websphere5应用服务器Websphere5 ND版本 Websphere5应用服务器
服务器实例 2个 1个
2.2 建立群集
第一步 启动服务器
我们需要启动bookman上的websphere 5 ND,然后启动所有机器上的websphere 5应用服务器实例,因为在将websphere 5应用服务器实例纳入ND管理的时侯,需要和客户机通信。。
[注]由于Websphere5应用服务器和Websphere5 ND版本都使用了9080端口作为http端口,所以如果你的Websphere5应用服务器和Websphere5 ND版本安装在同一台机器上,那么请在启动ND版本之前将websphere5 应用服务器的http端口通过控制台修改为系统中未使用的其它端口比如:9000。
第二步 将websphere 5应用服务器实例纳入ND的管理范围
为了能够通过ND管理所有的websphere 5应用服务器实例,我们必须将websphere 5应用服务器实例纳入到ND的管理范围之内,我们可以ND管理控制台的节点管理来达到这个目的,下面是新建一个节点的步骤:
1. 进入控制台的系统管理 à 节点,单击"添加节点"
2. 输入节点的IP地址比如202。197。40。36,其它的可以使用默认配置
3. 单击确定就可以将202。197。40。36上的websphere5应用服务器纳入ND的管理范围
4. 重复步骤1~3,可以将其它需要管理的节点纳入ND的管理范围
5. 单击控制台顶部的保存链接保存所有的修改。
[注] 完成之后可能要重起websphere服务器和websphere ND服务器
第三步 建立新的群集
下面我们开始建立群集的工作了:
1. 进入控制台的服务器 à 群集,单击新建
2. 在群集基本信息输入界面,输入群集名:MyCluster,其它可使用默认设置,其中的现有服务器选项可以选择为不包含已经存在的应用服务器,也可以选择使用已经存在的应用服务器,如果你已经配置好了应用服务器而且已经在运行,只是希望将他纳入ND的管理,那么你可以选择包含已经存在的应用服务器,他将作为该群集中的第一个应用服务器。
3. 现在群集已经建立好,可以开始创建群集的成员了
在群集成员的信息输入界面中,输入群集服务器的详细信息如下:
名称 : Clu_Server1
节点 : 选择该成员所在的节点,我这里选择Bookman
Http 端口: 该端口是这个群集成员提供服务的http端口,你可以选择生成唯一的Http端口,这样系统将在创建该成员的时侯使用一个唯一的http端口。作者推荐这里不选择,然后由系统管理员给这个成员分配指定的端口,主要是一般系统中的端口都是人工分配的,可以方便管理。
选择模板: 你可以选择要创建服务器的模板,你可选择默认的或者是已有的应用服务器作为模板,但是每个成员必须使用相同的模板。
单击应用就可以完成该成员的创建,重复这个步骤可以完成所有群集中成员的创建。
[注] 每个节点可以创建多个应用服务器实例,只要他们使用不同的http端口就可以了。
第四步. 单击控制台顶部的保存链接保存所有的修改。
最后在群集管理区(控制台的服务器 à 群集)中其中MyCluster群集,这时系统会自动启动该群集以及他的所有群集成员。
[注] 为了确保所有的群集成员都能够随着群集的启动而自动启动,你必须保证每个节点的节点代理(NodeAgent)都已经正常运行,如果某个节点的节点代理没有正常运行,那么位于该节点上的所有群集成员都不会 自动启动,你可以通过启动该节点的节点代理后在通过管理控制台启动该节点上的应用服务器实例。
3 效果演示
现在我们来看看群集实现容错的实际效果,为了能够看到完整的演示效果,请保证所有的websphere群集和群集成员都已经正常运行。
3.1 环境说明
在我们的演示环境中,作者建立一个集群MyCluster,里面有两个成员,一个是Clu_Server1,他位于节点bookman上,使用HTTP端口为9081,另一个是Clu_Server2,他位于节点Mark上,使用HTTP端口为9082.
3.2 开发一个Demo实例
这里作者使用了一个Demo实例,他是一个简单的web应用,他里面只有一个JSP文件,该JSP文件实现在浏览器中输出Hello World!字符串。
3.3 应用发布
现在我们可以将这个Demo实例发布到集群中,你可以将该web应用直接发布到群集上,输入上下文路径为test,,然后在保存的时候选择"与节点同步更改",这样该应用实例将发布到所有的节点上。
[注] 因为刚发布的web应用默认是没有启动的,如果你需要他立即提供服务,必须自己去启动他。在控制台的应用程序 à 企业应用应用里面可以启动web应用或者企业应用,你只需要操作一次,所有节点的该应用都会自动启动。
3.4 效果演示
现在,开发和发布工作结束,是我们看看效果的时侯了。
首先我们打开浏览器,在地址栏中输入http://bookman:9081/test/helloworld.jsp,可以看到浏览器中打印出了hello world!字符串
我们在浏览器的地址栏中输入http://mark:9082/test/helloworld.jsp,可以看到浏览器中打印出了hello world!字符串
这说明我们这两个集群中的成员可以单独的提供服务了,现在我们在控制台中将Clu_server1(也就是bookman这台机器)停止,是他不能再提供服务,然后在浏览器的地址栏中输入http://bookman:9081/test/helloworld.jsp,现在我们仍然能够看到浏览器中可以输出Hello World!字符串,这就说明我们的群集能够正常的实现容错,也就是说:我们建立的群集可以在群集中的某个应用服务器不能正常工作的情况下,将客户的请求转给群集中其它可以正常工作的应用服务器进行处理。
4 总结
随需应变的电子商务时代对企业提出了更高的要求,为了能够保证系统的不间断运行,我们需要对已有的企业信息结构进行改造,以保证能够给客户提供 365*7*24的不间断服务。Websphere群集技术提供了一个很好的实现基础,通过简单的配置工作,我们就可以实现群集技术,实现企业应用服务器间的容错,保证在群集中某个应用服务器不能正常工作的情况下,其它正常的应用服务器可以接替他的工作给客户提供服务,保证企业服务不间断。本文中作者根据自己的实际经验,给出了实现websphere群集的全过程,并且做了一个简单的例子来演示websphere群集的容错效果,希望能够对大家有所帮助。
WebSphere 中的 建立websphere5群集实现容错

评论 (0) 