温馨提示×

CentOS环境下WebLogic的集群负载均衡如何设置

小樊
45
2025-11-01 21:50:01
栏目: 云计算

CentOS环境下WebLogic集群负载均衡设置步骤

1. 准备工作

  • 环境要求:确保所有CentOS服务器安装相同版本的WebLogic Server(建议12c及以上),并配置静态IP;所有节点时间同步(如使用ntpdate同步);防火墙开放集群通信端口(如7001、7002等T3协议端口)。
  • 基础安装:在所有节点安装JDK(如JDK 8),配置JAVA_HOME环境变量;下载并安装WebLogic Server(使用java -jar wls1036_generic.jar或图形化安装);创建WebLogic用户和组(如groupadd weblogicuseradd -g weblogic weblogic)。

2. 配置WebLogic集群

  • 创建集群:登录WebLogic管理控制台(http://管理服务器IP:7001/console),导航至环境→集群,点击“新建”,输入集群名称(如myCluster),选择集群模式(通常为“受管服务器集群”),完成创建。
  • 添加受管服务器到集群:在集群配置页面,点击服务器→新建,选择“受管服务器”,输入服务器名称(如managed1managed2),配置监听地址(如localhost或节点IP)和端口(如7001、7002),选择所属集群(myCluster),重复操作添加所有受管服务器。
  • 配置集群通信:确保集群中所有服务器的T3协议端口(默认7001)开放,且在setDomainEnv.sh中配置集群地址(如-Dweblogic.cluster.address=myCluster)。

3. 配置负载均衡策略

  • 默认负载均衡算法:WebLogic默认使用**轮询(Round Robin)**算法(适用于大多数场景)。如需修改,可通过以下两种方式:
    • 管理控制台配置:导航至集群→myCluster→配置→负载均衡,在“默认负载均衡算法”下拉列表中选择算法(可选:轮询、最少连接Least Connections、随机Random、加权轮询Weight-Based),点击“应用”。
    • WLST脚本配置:使用命令行工具配置,例如设置加权轮询算法:
      connect('weblogic', 'password', 't3://管理服务器IP:7001')
      edit()
      startEdit()
      cd('/Clusters/myCluster')
      cmo.setDefaultLoadAlgorithm('WeightBased')  # 或'RoundRobin'/'LeastConnections'/'Random'
      save()
      activate()
      
  • 加权负载均衡(可选):若集群服务器性能差异较大,可为服务器分配权重(1-100),权重越高承担负载越多。在集群→myCluster→配置→服务器中,修改每个服务器的“集群权重”字段(如managed1设为50,managed2设为100),然后选择“加权轮询”算法。

4. 配置会话持久性(可选但推荐)

为确保用户会话在服务器故障时不丢失,需配置会话复制:

  • 内存会话复制(适用于小集群):在集群→myCluster→配置→故障转移中,启用“内存会话复制”,选择复制组(如myReplicationGroup)。
  • JDBC会话复制(适用于生产环境):创建JDBC数据源(指向共享数据库),在集群→myCluster→配置→故障转移中,启用“JDBC会话持久性”,选择创建的数据源。

5. 配置虚拟主机与监听器

  • 创建虚拟主机:导航至环境→服务器→虚拟主机,点击“新建”,输入虚拟主机名称(如myVirtualHost),点击“完成”。
  • 配置监听器:在虚拟主机配置页面,点击监听器→新建,输入监听器名称(如httpListener),选择协议(HTTP),设置端口(如8080),点击“完成”。确保监听器绑定到集群中的所有服务器。

6. 结合反向代理优化负载均衡(可选)

若需要更高级的负载均衡功能(如SSL终止、URL重写),可使用Nginx或HAProxy作为反向代理:

  • Nginx配置示例
    sudo yum install nginx
    sudo vim /etc/nginx/nginx.conf
    
    http块中添加:
    upstream weblogic_cluster {
        server weblogic1_ip:7001;
        server weblogic2_ip:7001;
        # 可选:权重配置(weight=2表示权重为2)
        # server weblogic3_ip:7001 weight=2;
    }
    server {
        listen 80;
        server_name example.com;
        location / {
            proxy_pass http://weblogic_cluster;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }
    
    重启Nginx:sudo systemctl restart nginx
  • HAProxy配置示例
    sudo yum install haproxy
    sudo vim /etc/haproxy/haproxy.cfg
    
    frontendbackend部分添加:
    frontend http_front
        bind *:80
        default_backend http_back
    backend http_back
        balance roundrobin
        server weblogic1 weblogic1_ip:7001 check
        server weblogic2 weblogic2_ip:7001 check
    
    重启HAProxy:sudo systemctl restart haproxy

7. 测试负载均衡

  • 访问虚拟主机URL(如http://example.com),通过日志或监控工具(如WebLogic控制台的“监视→服务器”)查看请求是否分发到集群中的不同服务器。
  • 测试会话持久性:登录应用后,关闭当前服务器(如managed1),再次访问应仍能保持登录状态(若配置了会话复制)。

注意事项

  • 避免外部负载均衡与WebLogic负载均衡冲突:若使用外部负载均衡(如Nginx),需确保初始上下文请求通过外部负载均衡转发,后续请求由WebLogic集群内部负载均衡处理。
  • 监控集群状态:定期检查集群中服务器的健康状态(如CPU、内存使用率),及时调整负载均衡策略(如修改服务器权重)。
  • SSL配置:若启用SSL,需确保负载均衡器和WebLogic服务器的SSL证书一致,且协议版本兼容(如TLS 1.2)。

0