Weblogic的负载均衡可以通过软件和硬件的方式实现。硬件可以使用F5等设备,软件一般使用apache来实现。下面说明使用apache的具体方法。
Weblogic的负载均衡可以通过软件和硬件的方式实现。硬件可以使用F5等设备,软件一般使用apache来实现。下面说明使用apache的具体方法。
1. 环境准备
Apache 2.2 http://httpd.apache.org/download.cgi
Weblogic 9.2
三台机器,用途分别如下:
2. 配置weblogic
2.3 配置weblogic.xml文件
为了支持session复制,为应用程序新建weblogic.xml文件,放置到ear文件的meta-inf目录下。内容为:
<?xml version="1.0" encoding="GBK"?>
<weblogic-web-app xmlns="http://www.bea.com/ns/weblogic/90">
<session-descriptor>
<persistent-store-type>replicated</persistent-store-type>
<sharing-enabled>true</sharing-enabled>
</session-descriptor>
</weblogic-web-app>
3. 配置apache
从{weblogic_home}/server/plugin/win/32 目录,复制mod_wl_22.so 到 {apache_home}/modules目录下。
修改httpd.conf文件,增加如下内容:
LoadModule weblogic_module modules/mod_wl_22.so
<IfModule mod_weblogic.c>
WeblogicCluster 192.168.10.101:7010,192.168.10.102:7011
MatchExpression *
WLLogFile "D:/Program Files/Apache Software Foundation/Apache2.2/logs/wlproxy.log"
Debug On
DebugConfigInfo On
KeepAliveEnabled On
KeepAliveSecs 15
</IfModule>
4. 部署应用程序
启动machine2上面的admin server,进入控制台,部署应用程序,注意选择target时,要指定为cluster_test。
5. 启动weblogic
5.1 启动machine2上面的admin server
在machine2机器上,运行命令{weblogic_home}/user_projects/domains/cluster_domain/bin/startWeblogic.cmd
5.2 启动machine2上面的server1
在machine2机器上,运行命令{weblogic_home}/user_projects/domains/cluster_domain/bin/startManagedWeblogic.cmd server1 192.168.10.101:7001
5.3 启动machine3上面的server2
在machine3机器上,运行命令{weblogic_home}/user_projects/domains/cluster_domain/bin/startManagedWeblogic.cmd server2 192.168.10.101:7001
6. 启动apache服务器
7. 相关约束条件
7.1 所有Managed server的绑定地址必须是静态地址,不能是动态地址
7.2 如果需要在wan上面访问,admin server所在的机器必须要有对外的IP地址
8. 问题诊断方法
MulticastMonitor 工具
监视群内广播数据,一般用来检查群内通信是否正常。使用方法如下:
1. 运行 {weblogic_home}/user_projects/domains/{domain_name}/bin/setdomain.cmd 设置环境变量,如classpath等,
2. 运行 java weblogic.cluster.MulticastMonitor {群广播地址} {广播端口} {域名称} {集群名称}
3. 运行后可以看到群内各个managed server之间的广播数据,据此可以判断每个服务器的通信是否正常。
MulticastTest 工具
在各个managed server之间发送数据,一般用来检查群内各个server之间通信是否正常。此命令需要在每个server所在的机器上运行。使用方法如下:
1. 运行 {weblogic_home}/user_projects/domains/{domain_name}/bin/setdomain.cmd 设置环境变量,如classpath等,
2. 运行 java utils.MulticastTest -n {消息名称} {广播地址}
每个server上运行的消息名称不能相同。
广播地址不能是已经配置了的群广播地址,即:需要另外使用一个用来测试用的广播地址。