centos下weblogic如何实现负载均衡
导读:在 CentOS 上实现 WebLogic 负载均衡 一 架构与前置条件 准备至少2 台 CentOS 7/8 服务器,每台运行相同版本的 WebLogic Server,并为每台受管服务器配置静态 IP与可路由的监听地址(不要使用动态地...
在 CentOS 上实现 WebLogic 负载均衡
一 架构与前置条件
- 准备至少2 台 CentOS 7/8 服务器,每台运行相同版本的 WebLogic Server,并为每台受管服务器配置静态 IP与可路由的监听地址(不要使用动态地址)。
- 集群内服务器需位于同一LAN,并可通过IP 多播通信;为集群选取一个**多播地址(224.0.0.1–239.255.255.255)**与端口,避免与其他集群冲突。
- 若服务器位于防火墙后且客户端在防火墙外,每台实例需具备可被客户端访问的公网/前端 IP。
- 不建议在多台机器上通过共享文件系统+单一安装目录运行多个实例,避免单点竞争与可用性风险。
- 规划端口:管理服务器常用 7001/T3,受管服务器 HTTP 监听如 7003/7005 等,并确保节点间与管理节点的互通。
二 创建 WebLogic 集群
- 使用域配置向导或 WLST 创建集群:在管理控制台选择Clusters → New,填写Name,设置Default Load Algorithm(如轮询);在Multicast页填入集群的多播地址与端口。
- 创建受管服务器(Managed Server),设置Listen Address/Port,并将服务器分配到集群。
- 启动顺序:先启动AdminServer,再启动各Managed Server;观察日志出现“Listening for multicast messages …”即表示加入集群。
- 验证:在控制台进入集群的Monitoring → Monitor server participation in cluster,确认所有实例已加入。
三 会话保持与故障转移
- 有状态应用建议开启HTTP Session 复制(内存到内存或 JDBC 复制),保证节点故障时会话不丢失。
- 使用外部负载均衡器(如 F5、硬件 LB)时,需正确配置对 WebLogic 会话 Cookie 的持久化:
- 不支持会覆盖/修改 WebLogic 会话 Cookie 的“主动 Cookie 持久化”。
- 使用“被动 Cookie 持久化”时,需按会话 Cookie 格式配置**偏移量(offset)与长度(length)**以提取服务器标识。
- WebLogic 会话 Cookie 基本格式包含随机会话 ID与标识服务器实例的字符串常量(集群环境可包含主/备实例信息);必要时可通过应用或域参数缩短长度以适配设备限制。
四 外部负载均衡器配置示例
- 方案 A:Nginx(HTTP 反向代理,适合大多数 Web 应用)
- 安装:sudo yum install -y epel-release & & sudo yum install -y nginx
- 配置 /etc/nginx/conf.d/weblogic.conf:
http {
upstream weblogic_cluster {
server 192.168.10.11:7003;
server 192.168.10.12:7003;
# 可按需增加权重、健康检查等
}
server {
listen 80;
server_name app.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;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
} - 生效:sudo systemctl enable --now nginx
- 方案 B:HAProxy(可选,四层/七层均可)
- 安装:sudo yum install -y haproxy
- 配置 /etc/haproxy/haproxy.cfg(示例为 HTTP):
global
log /dev/log local0
log /dev/log local1 notice
maxconn 4096
defaults
log global
mode http
option httplog
retries 3
timeout connect 10s
timeout client 1m
timeout server 1m
frontend http-in
bind *:80
default_backend weblogic_servers
backend weblogic_servers
balance roundrobin
server s1 192.168.10.11:7003 check
server s2 192.168.10.12:7003 check - 生效:sudo systemctl enable --now haproxy
- 提示:若使用 HTTPS,在负载均衡器终止 SSL,后端以 HTTP 访问受管服务器;或在负载均衡器开启 SSL 透传并在 WebLogic 配置相应 SSL 监听。
五 验证与运维要点
- 健康检查与观察:在控制台检查集群成员参与;对 Nginx/HAProxy 配置主动健康检查(HTTP/端口探活),并在变更后逐步滚动重启实例。
- 网络与安全:开放必要端口(如 7001/T3 管理、7003/HTTP 应用、多播 UDP),并限制来源;跨机房部署时优先保证低时延与稳定多播。
- 会话与粘性:无状态优先;有状态应用开启会话复制,并结合负载均衡器的会话保持策略;对移动端或禁用 Cookie 的场景,评估URL 重写与参数长度限制。
- 日志与告警:统一收集 server.log、access.log,对 UnavailableException、StuckThread、会话复制异常设置告警。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos下weblogic如何实现负载均衡
本文地址: https://pptw.com/jishu/758886.html
