Websphere Application Server Network Deployment version 6.1 Cluster Guide - 3/3
by maj 21/8.08
COPYLEFT BY MAZHE(mazhe219@gmail.com)
附2:自定义LoadBalancer
1.编写自定义LoadBalancer代码
可以使用servlet书写负载分发逻辑,选择好要分发的服务器后可以使用response.sendRedirect(url)
该LoadBalancer应用的上下文要和webserver中的被访问应用一致(待研究)
2.修改webserver的plugin配置
要修改的配置文件地址:
/opt/IBM/WebSphere/AppServer/profiles/Dmgr01/config/cells/Cell01/nodes/Node01/servers/webserver1/plugin-cfg.xml
原始配置:
<VirtualHostGroup Name="default_host">
<VirtualHost Name="*:80"/>
<VirtualHost Name="*:9443"/>
<VirtualHost Name="*:9081"/>
</VirtualHostGroup>
<ServerCluster LoadBalance="Round Robin" Name="testCluster">
<Server CloneID="11111" LoadBalanceWeight="2" Name="Node01_app01">
<Transport Hostname="APPHOST01" Port="9081" Protocol="http"/>
<Transport Hostname="APPHOST01" Port="9444" Protocol="https">
<Property Name="keyring" Value="/opt/IBM/HTTPServer/config/webserver1/plugin-key.kdb"/>
<Property Name="stashfile" Value="/opt/IBM/HTTPServer/config/webserver1/plugin-key.sth"/>
</Transport>
</Server>
<Server CloneID="22222" LoadBalanceWeight="2" Name="Node02_app02">
<Transport Hostname="APPHOST02" Port="9083" Protocol="http"/>
<Transport Hostname="APPHOST02" Port="9446" Protocol="https">
<Property Name="keyring" Value="/opt/IBM/HTTPServer/config/webserver1/plugin-key.kdb"/>
<Property Name="stashfile" Value="/opt/IBM/HTTPServer/config/webserver1/plugin-key.sth"/>
</Transport>
</Server>
<Server CloneID="33333" LoadBalanceWeight="2" Name="Node03_app03">
<Transport Hostname="APPHOST02" Port="9081" Protocol="http"/>
<Transport Hostname="APPHOST02" Port="9444" Protocol="https">
<Property Name="keyring" Value="/opt/IBM/HTTPServer/config/webserver1/plugin-key.kdb"/>
<Property Name="stashfile" Value="/opt/IBM/HTTPServer/config/webserver1/plugin-key.sth"/>
</Transport>
</Server>
<PrimaryServers>
<Server Name="Node01_app01"/>
<Server Name="Node02_app02"/>
<Server Name="Node03_app03"/>
</PrimaryServers>
</ServerCluster>
上面配置文件中一些不很重要的属性被省略掉了,
将配置文件改为:
<VirtualHostGroup Name="default_host">
<VirtualHost Name="*:80"/>
<VirtualHost Name="*:9443"/>
<VirtualHost Name="*:9081"/>
<VirtualHost Name="*:8088"/>
</VirtualHostGroup>
<ServerCluster LoadBalance="Round Robin" Name="testCluster">
<ClusterAddress Name="MyLoadBalancer">
<Transport Hostname="192.168.0.6" Port="8088" Protocol="http"/>
</ClusterAddress>
<Server CloneID="11111" LoadBalanceWeight="2" Name="Node01_app01">
<Transport Hostname="APPHOST01" Port="9081" Protocol="http"/>
<Transport Hostname="APPHOST01" Port="9444" Protocol="https">
<Property Name="keyring" Value="/opt/IBM/HTTPServer/config/webserver1/plugin-key.kdb"/>
<Property Name="stashfile" Value="/opt/IBM/HTTPServer/config/webserver1/plugin-key.sth"/>
</Transport>
</Server>
<Server CloneID="22222" LoadBalanceWeight="2" Name="Node02_app02">
<Transport Hostname="APPHOST02" Port="9083" Protocol="http"/>
<Transport Hostname="APPHOST02" Port="9446" Protocol="https">
<Property Name="keyring" Value="/opt/IBM/HTTPServer/config/webserver1/plugin-key.kdb"/>
<Property Name="stashfile" Value="/opt/IBM/HTTPServer/config/webserver1/plugin-key.sth"/>
</Transport>
</Server>
<Server CloneID="33333" LoadBalanceWeight="2" Name="Node03_app03">
<Transport Hostname="APPHOST02" Port="9081" Protocol="http"/>
<Transport Hostname="APPHOST02" Port="9444" Protocol="https">
<Property Name="keyring" Value="/opt/IBM/HTTPServer/config/webserver1/plugin-key.kdb"/>
<Property Name="stashfile" Value="/opt/IBM/HTTPServer/config/webserver1/plugin-key.sth"/>
</Transport>
</Server>
<PrimaryServers>
<Server Name="MyLoadBalancer"/>
</PrimaryServers>
</ServerCluster>
主要添加了名为MyLoadBalancer的ClusterAddress,这个自定义LoadBalancer的地址为192.168.0.6,端口为8088,要指定PrimaryServers中为主要添加了名为MyLoadBalancer的ClusterAddress,并在 VirtualHostGroup中添加一个端口.
2.webserver传播插件
点选webserver1并进行插件的传播.
3.完成自定义LoadBalancer
进行访问测试
原发于 http://blog.sina.com.cn/mazhe219