Websphere Application Server Network Deployment version 6.1 Cluster Guide - 3/3
by maj 21/8.08
COPYLEFT BY MAZHE([email protected])
附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