温馨提示×

centos中weblogic集群负载如何均衡

小樊
50
2025-10-17 21:39:01
栏目: 智能运维

1. 前提准备

  • 环境配置:确保所有CentOS节点安装相同版本的WebLogic Server(建议12c及以上),并配置静态IP;所有节点时间同步(如使用ntpdate同步);防火墙开放WebLogic集群端口(默认7001)及节点间通信端口。
  • 基础安装:在所有节点安装JDK(版本匹配WebLogic要求,如JDK 8),并配置JAVA_HOME环境变量;安装WebLogic Server(通过wls_generic.jar安装包)。

2. 创建WebLogic集群

  • 登录WebLogic管理控制台(http://<admin-server-ip>:7001/console),导航至环境→集群
  • 点击“新建”,输入集群名称(如myCluster),选择集群模式(通常为“Managed”),配置集群消息传递协议(如T3)。
  • 点击“完成”创建空集群。

3. 添加服务器实例到集群

  • 导航至环境→服务器→新建,选择“受管服务器”,输入服务器名称(如managed1managed2),配置监听端口(如70027003)。
  • 在“集群”下拉菜单中选择已创建的集群(myCluster),点击“完成”将服务器添加至集群。
  • 重复上述步骤添加所有集群成员。

4. 配置WebLogic内置负载均衡策略 WebLogic支持多种内置负载均衡算法,可通过管理控制台或WLST脚本配置:

  • 轮询(Round Robin):默认算法,按顺序将请求分发至集群成员,适用于服务器性能相近的场景。配置路径:集群→myCluster→负载均衡→负载均衡算法,选择“Round Robin”。
  • 最少连接(Least Connections):将请求分发至当前连接数最少的服务器,适用于处理时间差异大的请求。配置路径同上,选择“Least Connections”。
  • 加权轮询(Weight-Based Round Robin):根据服务器权重(1-100)分配负载,高性能服务器分配更高权重。配置路径:集群→myCluster→负载均衡→负载均衡算法,选择“Weight-Based Round Robin”,并在集群权重字段为各服务器设置权重(如managed1设为50,managed2设为100)。
  • 随机(Random):随机选择集群成员分发请求,适用于服务器性能均匀的场景。

5. 配置会话复制与持久性(高可用) 为确保用户会话在服务器故障时不丢失,需配置会话复制:

  • 内存复制(适用于同一局域网):导航至环境→服务器→managed1→配置→会话→复制,选择“内存复制组”,输入组名(如myReplicationGroup);重复配置其他集群成员至同一复制组。
  • JDBC持久化(适用于跨网络或大规模集群):创建JDBC数据源(服务→数据源→新建),选择数据库类型(如Oracle),配置连接池信息;导航至环境→服务器→managed1→配置→会话→持久化,选择“JDBC持久化存储”,关联已创建的数据源。

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

  • 导航至环境→服务器→managed1→配置→监听器,点击“新建”,输入监听器名称(如weblogic_cluster_listener),选择协议(HTTPHTTPS),配置端口(如8080)。
  • 虚拟主机标签页,点击“新建”,输入虚拟主机名称(如myVirtualHost),添加监听器(weblogic_cluster_listener),保存配置。
  • 确保集群中所有服务器的虚拟主机配置一致,以便负载均衡器分发请求至正确虚拟主机。

7. 可选:结合反向代理增强负载均衡 为提升灵活性和安全性,可使用Nginx或HAProxy作为反向代理,将外部请求分发至WebLogic集群:

  • Nginx配置示例
    http {
        upstream weblogic_cluster {
            server managed1.example.com:8080;
            server managed2.example.com:8080;
            # 可选:权重配置(weight=50表示承担50%负载)
            # server managed1.example.com:8080 weight=50;
            # server managed2.example.com:8080 weight=100;
        }
        server {
            listen 80;
            server_name yourdomain.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;
                proxy_set_header X-Forwarded-Proto $scheme;
            }
        }
    }
    
    启动Nginx:sudo systemctl start nginx
  • HAProxy配置示例
    global
        log /dev/log local0
        log /dev/log local1 notice
        daemon
    defaults
        log global
        option tcplog
        timeout connect 5000ms
        timeout client 50000ms
        timeout server 50000ms
    frontend http_front
        bind *:80
        default_backend http_back
    backend http_back
        balance roundrobin
        server managed1 managed1.example.com:8080 check
        server managed2 managed2.example.com:8080 check
    
    启动HAProxy:sudo systemctl start haproxy

8. 测试与验证

  • 访问虚拟主机URL(如http://yourdomain.com),通过多次刷新页面或使用压力测试工具(如Apache Benchmarkab -n 1000 -c 10 http://yourdomain.com/),观察请求是否均匀分发至集群成员。
  • 查看WebLogic管理控制台集群→myCluster→监视,检查各服务器的“活动会话数”“请求处理数”等指标,确认负载均衡生效。

0