Weblogic的负载均衡可以通过软件和硬件的方式实现。硬件可以使用F5等设备,软件一般使用apache来实现。下面说明使用apache的具体方法。
1. 环境准备
Apache 2.2 http://httpd.apache.org/download.cgi
Weblogic 9.2
三台机器,用途分别如下:
名称 | IP地址 | 用途 |
machine1 | 192.168.10.100 | apache服务器 |
machine2 | 192.168.10.101 | weblogic服务器 |
machine3 | 192.168.10.102 | weblogic服务器 |
2. 配置weblogic
2.1 安装weblogic
在machine2,machine3上面分别安装weblogic。在machine1上安装时,注意选择要安装web server plugin。
2.2 配置weblogic
在machine2上面运行domain creation wizard,创建一个admin server和两个managed server,配置分别如下:
名称 | address | port |
AdminServer | 192.168.10.101 | 7001 |
Server1 | 192.168.10.101 | 7010 |
Server2 | 192.168.10.102 | 7011 |
在machine2上面建立cluster,配置如下:
| |
名称 | Multicast address | port |
cluster_test | 237.155.155.1 | |
在machine3上面运行domain creation wizard,创建一个admin server和一个managed server,配置分别如下:
名称 | address | port |
AdminServer | 192.168.10.102 | 7001 |
Server2 | | |
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. 问题诊断方法
监视群内广播数据,一般用来检查群内通信是否正常。使用方法如下:
1. 运行 {weblogic_home}\user_projects\domains\{domain_name}\bin\setdomain.cmd 设置环境变量,如classpath等,
2. 运行 java weblogic.cluster.MulticastMonitor {群广播地址} {广播端口} {域名称} {集群名称}
3. 运行后可以看到群内各个managed server之间的广播数据,据此可以判断每个服务器的通信是否正常。
在各个managed server之间发送数据,一般用来检查群内各个server之间通信是否正常。此命令需要在每个server所在的机器上运行。使用方法如下:
1. 运行 {weblogic_home}\user_projects\domains\{domain_name}\bin\setdomain.cmd 设置环境变量,如classpath等,
2. 运行 java utils.MulticastTest -n {消息名称} {广播地址}
每个server上运行的消息名称不能相同。