4. 集群和负载均衡
IHS还能帮助WAS CE构成集群环境。集群(cluster)功能可以大幅度提高系统和应用的可用性和可靠性。WAS CE的Web容器Tomcat具备集群功能,它通过在集群中的多点广播(multicast)实现HTTP会话的复制,并且确保一个用户发向某一个节点的后续请求仍然会由同一个节点处理,这被称为session affinity。
IHS7.0为WAS CE提供了专用的AJP代理模块和均衡模块,位于<IHS_HOME>/modules/ WebSphereCE路径下,以帮助多个WAS CE节点实现负载均衡和失败恢复。Apache Jserv Protocol (AJP)协议用于WAS CE和IHS之间的通信。
我们将借用WAS CE示例[4]中用于展示Tomcat集群功能的例子,说明WAS CE和IHS分别需要怎样的配置步骤。
先对本机的WASCE进行配置:
1)在WASCE的安装目录(<WASCE_HOME>)下新建文件夹instance2,然后将<WASCE_HOME>/var目录复制到instance2文件夹下。
2)分别修改两个实例的配置文件<WASCE_HOME>/var/config/config-substitutions.properties,例如分别作如下配置:
2 clusterName=mycluster
3 PortOffset=0
2 clusterName=mycluster
3 PortOffset=10
这样,两个WAS CE实例分别充当集群mycluster中的节点node1和node2,第二个WAS CE实例的PoetOffset不为0,以避免端口冲突。
3)分别启动两个WAS CE实例。在启动第二个实例前,首先用set命令设置环境变量(注意命令写在一行):
set GERONIMO_OPTS = -Dorg.apache.geronimo.server.name=instance2
其中,instance2是第二个WASCE实例相对于WASCE安装目录的路径。然后用命令geronimo.bat run来启动。
4)将tomcat-cluster文件夹下的两个Web应用servlet-examples-cluster-server1.war和servlet-examples-cluster-server2.war分别部署在本机的node1和node2实例上。
接下来就要对IHS进行配置。停止IHS并修改httpd.conf:
2 LoadModule proxy_module modules/mod_proxy.so
3 LoadModule proxy_ajp_module modules/WebSphereCE/mod_proxy_ajp.so
4 LoadModule proxy_balancer_module modules/WebSphereCE/mod_proxy_balancer.so
5
6 <IfModulemod_proxy.c>
7 #配置名为mycluster的均衡器,两个节点的负载本别是50%。8009和8019分别是两个节点的AJP端口。
8 <Proxybalancer://mycluster>
9 BalancerMemberajp://localhost:8009/servlet-examples-cluster loadfactor=50 route=NODE1
10 BalancerMemberajp://localhost:8019/servlet-examples-cluster loadfactor=50 route=NODE2
11 </Proxy>
12 #用mycluster来处理servlet-examples-cluster这样的URL
13 ProxyPass/servlet-examples-cluster balancer://mycluster/ stickysession=JSESSIONID
14 </IfModule>
15
16 #可以用IHS的balancer-manager来管理这个集群的成员和负载
17 <Location/balancer-manager>
18 SetHandlerbalancer-manager
19 </Location>
配置完成之后,访问http://localhost/ servlet-examples-cluster,可以看到目前活动的是node1。从servlet-examples-cluster/balancer-manager可以查看这两个节点的情况。若此时结点node1失效,用户对Server1的访问将被重定向至node2。
5. 总结
总的来说,IHS可以帮助WAS CE提高安全性,并且能帮助WAS CE分担SSL加密和解密的任务,使WAS CE可以专注于事物逻辑和其他事务的处理。另外,IHS能和WAS CE一起完成应用的集群功能,在部署在不同WAS CE节点上的Web应用之间进行负载均衡和失败恢复。
参考资料:
[1] IBM WebSphere Application Server文档:
http://publib.boulder.ibm.com/wasce/V2.1.1/en/index.html
[2] Apache HTTP Server 2.2文档:http://httpd.apache.org/docs/2.2/
[3] 在WAS CE中使用数字证书对客户机进行身份验证:
[4] 为WAS CE配置集群环境:
http://www.ibm.com/developerworks/cn/websphere/library/techarticles/0606_zhangsong/
[5] WAS CE示例下载:http://download.boulder.ibm.com/ibmdl/pub/software/websphere/wasce/