在WAS6.0 ND中实现集群
来源:百度文库 编辑:神马文学网 时间:2024/06/03 06:34:24
文档选项
将此页作为电子邮件发送
最新推荐
Java 应用开发源动力 - 下载免费软件,快速启动开发
徐明伟, IBM软件工程师
解永刚, IBM软件工程师
2006 年 4 月 05 日
本文通过两个实际场景,介绍如何从头搭建一个WAS ND水平集群环境以及如何将一个已有的单节点(或三节点)Web环境扩展成五节点的集群环境。
当前,越来越多的企业用户基于WebSphere应用服务器和DB2数据库环境搭建业务系统,实现电子商务。随着业务量的增大,企业对系统的负载量和高可用性提出了更多的要求,特别是一些关键业务,如金融,通信,交通等,要求确保系统24*7*365的可用性。通过WAS ND集群,可以实现包含多个应用服务器的分布式环境,确保系统的吞吐量和高可用性。本文通过两个实际场景,介绍如何从头搭建一个WAS ND水平集群环境以及如何将一个已有的单节点(或三节点)Web环境扩展成五节点的集群环境。
回页首
什么是集群?WAS集群由一组应用服务器组成,每个服务器上部署了同样的应用程序。通过集群可以实现可扩展性(服务更多客户,提高吞吐量),负载均衡(平衡负载资源,使资源得以有效利用),高可用性(提供故障恢复和补偿机制,在关键性业务中提供容错功能)。WAS ND提供水平集群和垂直集群两种形式,垂直集群是指同一机器上部署多个服务器,充分利用硬件资源,而水平集群利用多台机器资源,每台机器部署相同的应用。本文主要侧重水平集群,但是其中的很多概念对于垂直集群也是适用的。
图2.1是ND分布式环境的体系结构,包括单元、节点、服务器等基本概念。每个单元是单一管理域中的一组节点,在基本版和演示版中,一个单元只包含一个节点,每个节点可以有多个服务器,但是每个服务器的配置文件是单独存储和维护的。每个单元可以包含一个或多个集群,也可以不包含集群。在分布式环境中,每个单元包含多个节点,这些节点被统一管理,而且它们的配置文件被中心化到单元主配置文件中。配置管理器线程负责管理这些集中配置文件,并且将任何配置变化同步到每个节点上。节点是服务器线程的逻辑组,每台机器上只能有一个节点,通过节点代理器同配置管理器通信。在ND环境中,WAS plugin起到负载均衡的作用,在plugin-cfg文件中可以定义每个服务器的权重,根据权重值,plugin决定将一个请求定向到哪个服务器。
回页首
在实际的企业应用中,存在两种不同的集群场景,一种是从头搭建集群环境,然后将应用部署到集群中;另外一种是基于已有的单节点环境(或三节点环境)扩展成集群环境。本文将会覆盖这两种场景的配置和部署,为读者提供切实可行的指导。
图3.1是最终的集群环境,包含五个节点,分布在五台机器上,一台用于部署Deployement Manager,作为集中管理接口管理WAS集群成员;两台作为WAS集群成员,具体处理商业逻辑;一台作为Web服务器,用于接收用户请求,并通过plugin配置文件将负载均衡到WAS集群成员上。一台作为数据库节点,存储企业数据。此例中, DM节点和Web服务器节点是Window操作系统,其余均为AIX5.2操作系统。对于Web服务器的选择,可以是任何WAS支持的服务器,在此我们选择IBM HTTP Server(IHS),对于其他Web服务器,其基本原理是一样的,不同的是某些配置和操作需要手工处理。对于数据库服务器,其基本操作完全一致,此例中我们选择DB2。
在这个场景中,企业一开始就有集群环境的需求,这就需要首先搭建集群环境,然后在cluster上部署企业应用程序。以下是详细操作步骤,最后通过部署一个企业应用来测试。
一. 准备WAS 配置管理节点
1. 在silkpc01 服务器上安装WAS6 ND 版本(安装结束后不要立即创建profile).注意安装最新的补丁.
2. 用profile向导创建一个配置管理profile. 首先选择配置管理profile作为profile类型,默认的DM profile名称是Dmgr01.
3. 接下来的步骤选择默认值,记住SOAP连接端口号,默认值是8879.这个端口号会在以后的配置中用到。
4. 运行
5. 登陆http://silkpc01.cn.ibm.com:9060/admin管理控制台确认安装是否成功.
二. 准备Web Server节点
1. 在silkpc06服务器上安装 IBM IHS6.0(选择典型安装)
2. 确保IHS安装成功. 启动Web server,测试http://silkpc06/返回页
三. 安装配置WAS Plugin
对于静态Web页面请求,Web Server会直接处理并将结果返回给终端用户。而对于动态Web页面,如JSP,Servlet等,需要WAS plugin将请求传递给WAS Web容器或者EJB容器来处理。下面将介绍如何安装和配置WAS plugin应用。
1. 确认IBM IHS6.0安装成功后,安装WAS plugin应用程序,选择"IBM HTTP Server V6"
2. 在接下来的步骤中选择plugin的安装路径,IHS配置文件httpd.conf的位置,指定Web服务名字,缺省是webserver1
3. 然后选择Deployement Manager所在服务器的作为应用服务器,这里是silkpc01
四. 把Web Server节点加入配置管理服务器.
1. 开启IHS的admin管理: 在silkpc06
2. 在silkpc06的服务管理面板中启动IBM HTTP Server 和 IBM HTTP Administration Server.
3. 将silkpc06的
4. 在silkpc01上启动DM服务 < was-install >/profiles/ profiles\Dmgr01\bin\ startManager.bat.
5. 在silkpc01打开一个命令行窗口,运行
7. 点击webserver1, 进入后在"additional properties"页中点击"remote web server",输入在第1步中生成的用户名和密码。这样Web Server就可以被配置管理器进行集中管理,包括停止/启动,以及plugin文件的生成和部署。
五. 准备应用服务器节点
1. 在psvt12 服务器上安装WAS6,注意安装最新的WAS补丁
2. 执行< was-install >/ bin/ProfileCreator/ pctAIX.bin 启动profile向导.
3. 选择应用服务profile作为profile类型.
4. 其余步骤使用默认值安装.
5. 在另外一个WAS节点psvt07上执行1至5步.
六. 把应用服务器节点加入到集中管理单元
1. 为保持同步,确保silkpc01, psvt12 和psvt07三台机器上的时间差不超过5分钟.
2. 在psvt12上执行< was-install >/ profiles/AppSrv01/bin/startServer.sh server1 启动 server1
3. 在psvt12上执行< was-install >/ profiles/AppSrv01/bin/addNode.sh
4. 在另外一台节点psvt07上重复2至3步将此节点也加入到集中管理单元.
5. 在配置管理控制台确认psvt07和psvt12加入到集中管理单元,如下图:
七. 准备数据库节点
1. 在数据库服务器psvt06上安装DB2 v8.2.
八. 创建cluster
1. 在WAS节点psvt07和psvt12上运行
2. 登录管理控制台,创建Cluster。输入Cluster名字,点击Next.
3. 输入psvt07作为成员名字, 在"Select node"下拉列表中选择psvt07Node01, 点击Apply.
4. 在同一页面输入psvt12作为成员名字, 选择psvt12Node01, 点击Apply.
5. 点击Next查看Cluster信息.
6. 点击finish创建cluster
7. 点击save保存和同步cluster(注意:在Cluster环境中,保存任何修改时都应该选上"与节点同步"的选项)
8. 确认cluster创建成功.从下图可以发现psvt07和psvt12已经作为cluster成员
至此我们已经完成了cluster的创建,接下来需要部署一个企业应用来测试。
九. 创建数据源(Datasource)
为了让将来发布在Cluster上的应用能连接到数据库, 我们需要在psvt07和psvt12节点上创建相同的数据源.
1. 登录管理控制台, Security‘Global security->JAAS Configuration->J2C Authentication data , 点击New.
2. 输入数据库节点上的数据库用户及密码,点击Apply保存
3. 进入管理控制台, Resource‘Jdbc Provider, 选择psvt07节点.然后点击New创建一个新的Jdbc Provider. 注意此处应该是在节点范围。如果在cluster级别,可能出现问题。
4. 选择Jdbc Provider类型和实现类
5. 点击Apply按钮保存Jdbc Provider, 并点击Data sources.
6. 点击New创建一个新的Data sources.
7. 输入jdbc/sample作为JNDI名字.
8. 输入数据库sample和数据库节点所在的主机名,选择上面新建的J2C认证.
9. 保存和同步新建的内容.
10. 设置psvt07节点的变量. Enviromnet->Wesphere Variables, 选择psvt07节点并设置DB2 JDBC driver路径.
11. 重复5至12步, 在psvt12节点上创建一个相同的DataSource.
12. 在silkpc01上重启DM服务, 在psvt07和psvt12上重启nodeagent服务。可以通过"Test Connection"测试节点的数据源配置是否正确。
十. 部署应用程序,测试集群环境
1. 下载应用程序到本地并解压缩。
2. 在数据库节点创建数据库sample(确保数据库名和第九步中键入的数据库名一致),并创建表(ddl.txt),加载数据(data.txt)。
3. 登录管理控制台发布应用, Applications->Install New Application, 选择Department.ear 作为发布的应用, 点击Next.
4. 选择default_host作为 Virtual host, 点击Next.
5. 输入应用的名字, 点击Next.
6. 在server列表中选择 TestCluster, 在模块(Module)列表中选择DepartmentEJB,点击Apply.
7. 按住Ctr键, 在server列表中选择 TestCluster和WebServer1, 在模块列表中选择DepartmentWeb, 点击Apply.
8. 点击Next.
9. 确认CurrentBackendId 为DB2UDBNT_V82_1,点击Next.
10. 点击Next.
11. 在应用部件列表中, 输入jdbc/sample 作为DepartmentEJB的Data Source 的JNDI名字.
12. 忽略出现的警告,点击Continue.
13. 在应用部件列表中, 输入jdbc/sample 作为DepartmentEJB的Data Source 的JNDI名字.
14. 忽略出现的警告,点击Continue.
15. 点击Next.
16. 确认DepartmentWeb的Virtual host 是default_host, 点击Next.
17. 点击Next.
18. 点击Finish部属应用在Cluster上.
19. 保存和同步新的修改.
20. 重新启动cluster.
21. 确认应用程序启动后,在IE浏览器键入:http://silkpc06/DepartmentWeb/getDepartmentName.html,输入部门号A00并提交,确认系统返回一个正确的页面.
如果企业的最初应用搭建在单节点之上,即WAS应用服务器、Web服务器和数据库都在同一物理机器上。或者应用搭建在三节点,WAS应用服务器、Web服务器和数据库分布在三台机器。但是随着业务需求的增加,用户希望在保持现在投资的基础上提供更高的扩展性,容错性和处理性能,这就有了集群环境的需求。本场景将介绍如何将此单节点(或三节点)扩展成图3-1拓扑的五节点环境。对于单节点环境,您需要从第一步开始操作,而对于已有的三节点环境,则可以省去第-和第二步的部分操作,免去单节点拆分成三节点的步骤,而进入第三步。
在此我们假设本文提供的应用程序已经发布到psvt12节点,此节点包含WAS, IHS和DB2环境,并且应用系统可以正常的工作。 (http://psvt12/DepartmentWeb/getDepartmentName.html).
一. 准备安装其他各节点
1. 在silkpc01节点上安装WAS6 ND 版本, 并用profile向导创建一个配置管理profile.
2. 在另外一个Cluster成员psvt07 节点上安装WAS6 ND 版本, 并用profile向导创建一个应用服务profile. 并在此节点安装DB2客户端.
3. 在Web服务器 silkpc06上安装IBM IHS 6.0 和WAS Plugin. 安装Plugin时,选择Remote方式, 选择silkpc01为应用服务器。并开启IHS的admin远程管理服务. (请参照场景一)
4. 在数据库节点psvt06节点上安装DB2 8.2服务器
二. 把psvt12上的应用拆分到三节点上
1. 在psvt12节点上备份当前的数据库,并把该数据库备份文件上传到psvt06
在WAS6.0 ND中实现集群
在WAS6.0 ND中实现集群
OSCache文档-3.3在集群系统中使用OSCache
深入探讨在集群环境中使用 EhCache
在oracle中实现分页
在JSF中实现分页
如何在 JavaScript 中实现拖放(中)
服务器集群系统实现方案详解
Linux集群系统的设计实现介绍
服务器集群系统实现方案详解
详解MySQL+Apache集群模式的实现
关于在集群中编程的问题 - mrdangdong的专栏 - CSDNBlog
在Spring中实现事务挂起
在应用程序中实现RAS拨号
如何在 JavaScript 中实现拖放(上)
在Struts 2中实现IoC
|在C#程序中实现插件架构
在JSP中如何实现MD5加密
在Struts 2中实现文件上传
:在uC/GUI中实现汉字显示
在Struts 2中实现文件上传
在Struts 2中实现CRUD
在Struts 2中实现CRUD
在JSF中实现分页(一)