Linux 上搭建 WebLogic 集群实操指南
一 架构与前置准备
- 架构要点:在同一域内创建多个受管服务器(Managed Server)组成集群(Cluster),由唯一的管理服务器(AdminServer)集中配置与监控;对外通过硬件负载均衡器或WebLogic 代理插件访问集群地址,实现负载均衡与故障转移。跨机房/跨防火墙部署需评估多播通信与网络拓扑影响。生产环境建议使用DNS 轮询名称或负载均衡器承载集群地址。以上为官方集群能力与部署原则。
- 环境与账号:准备两台及以上 Linux 主机(建议同发行版与内核版本一致),安装受支持的 JDK 8(示例为 jdk1.8.0_181),创建专用用户(如 weblogic)并配置 sudo 权限;规划目录(如 /opt/weblogic 安装、/u01/app/weblogic/domains 域)。
- 网络与端口:确保节点间互通,开放 SSH(22)、管理端口(默认 7001)、**节点管理器端口(默认 5556)**及受管服务器端口;如需代理/负载均衡,开放对应 VIP/端口。避免将集群节点跨防火墙部署,必要时评估多播穿越与端口放通策略。
二 安装 WebLogic 与创建域
- 安装 WebLogic(静默方式,两台主机均执行):
- 准备响应文件 wls.rsp 与 oraInst.loc,示例要点:
- wls.rsp:设置 ORACLE_HOME、接受许可等
- oraInst.loc:设置 inventory_loc 与 inst_group
- 以 weblogic 用户执行:
- java -jar fmw_14.1.1.0.0_wls_lite_generic.jar -silent -responseFile /opt/weblogic/wls.rsp -invPtrLoc /opt/weblogic/oraInst.loc
- 创建管理域(示例在主机 A 执行,端口 7001):
- $WL_HOME/common/bin/wlst.sh
- 典型 WLST 片段(按实际路径与密码调整):
- readTemplateForUpdate(‘/opt/weblogic/oracle/middleware/wlserver/common/templates/wls/wls.jar’)
- cd(‘Servers/AdminServer’)
- set(‘ListenAddress’,‘’)
- set(‘ListenPort’,7001)
- cd(‘/Security/base_domain/User/weblogic’)
- cmo.setPassword(‘YourStrongPwd!’)
- set(‘OverwriteDomain’,‘true’)
- writeDomain(‘/u01/app/weblogic/domains/base_domain’)
- closeTemplate(); exit()
- 验证:启动 AdminServer(nohup ./startWebLogic.sh &),浏览器访问 http://<主机A>:7001/console。
三 配置集群与受管服务器
- 方式一(控制台):登录控制台,锁定并编辑
- 环境 → 计算机 → 新建(为每台物理机各建一条,填写监听地址)
- 服务器 → 新建(创建多个受管服务器,如 server1、server2,指定所属计算机、监听地址与端口)
- 集群 → 新建(如 my_cluster),将受管服务器加入集群;保存并激活更改
- 方式二(WLST 片段,示例创建两台受管服务器并加入集群):
- readDomain(‘/u01/app/weblogic/domains/base_domain’)
- cd(‘/’)
- create(‘my_cluster’,‘Cluster’)
- create(‘server1’,‘Server’)
- cd(‘Servers/server1’); set(‘ListenAddress’,‘<主机A_IP>’); set(‘ListenPort’,7003)
- assign(‘Server’,‘server1’,‘Cluster’,‘my_cluster’)
- create(‘server2’,‘Server’)
- cd(‘Servers/server2’); set(‘ListenAddress’,‘<主机B_IP>’); set(‘ListenPort’,7003)
- assign(‘Server’,‘server2’,‘Cluster’,‘my_cluster’)
- updateDomain(); closeDomain(); exit()
- 节点管理器(建议每台主机启用,端口 5556):
- 启动:$WL_HOME/server/bin/startNodeManager.sh
- 在控制台“环境 → 服务器 → 控制”中对受管服务器执行“启动/停止”,或通过 nmConnect/nmStart 脚本化管理。
四 数据与会话及前端接入
- 数据源与共享存储:生产建议为集群配置JDBC 数据源(多数据源/故障转移/连接池参数按 SLA 调优);如应用有文件上传/共享内容,使用 NFS/SAN 做共享目录,并确保权限与 SELinux/防火墙策略正确。
- 会话保持与复制:有状态应用启用 WebLogic Server 会话复制(如基于内存的复制或数据库会话持久化),并在应用描述符中配置会话亲和(如使用 与合适的 cookie-name)。跨节点复制依赖集群内通信,需保证网络稳定与端口可达。
- 前端接入与发布:
- 方案 A:硬件负载均衡器(F5/NGINX Plus 等)对外暴露 VIP:端口,后端健康探测 7001/7003,会话保持策略与后端算法按业务选择
- 方案 B:Web 层代理 + WebLogic 代理插件(如 mod_wl/WebLogic Server Proxy Plug-In),将请求转发至集群地址
- 方案 C:开发/测试可直接使用逗号分隔的服务器地址列表连接集群(不推荐生产)
- 部署应用:控制台选择“集群部署”,一次部署到 my_cluster,验证各节点分发与健康检查。
五 启动与验证及常见问题
- 启动顺序与常用命令:
- 启动 AdminServer(主机 A):nohup ./startWebLogic.sh &
- 启动 Node Manager(两台主机):$WL_HOME/server/bin/startNodeManager.sh
- 启动受管服务器:控制台“控制”启动,或命令行:
- ./startManagedWebLogic.sh server1 http://<主机A>:7001
- ./startManagedWebLogic.sh server2 http://<主机A>:7001
- 健康检查与验证:
- 控制台查看服务器状态为 RUNNING,集群页显示成员健康
- 访问应用,检查会话保持与故障转移(停止某节点后业务是否不受影响)
- 日志排查:$DOMAIN_HOME/servers/serverX/logs/*.log 与 Node Manager 日志
- 常见问题与要点:
- 节点无法加入集群:核对 ListenAddress/端口、计算机归属、防火墙与 Node Manager 状态
- 会话不复制/丢失:确认应用 、复制策略与网络时延
- 多播/跨防火墙问题:尽量同网段部署;跨域需评估多播或改用单播/T3通信与代理方案
- 启动认证:在 $DOMAIN_HOME/servers//security/boot.properties 中配置 username/password 可实现免交互启动(首次需明文创建后自动加密)。