在 Debian 上搭建 WebLogic 集群的实操指南
一 架构与准备
- 架构建议:至少准备2 台 Debian主机,一台部署Admin Server,其余部署Managed Server;所有节点加入同一集群 Cluster,对外通过HTTP 负载均衡器(如 Nginx/HAProxy/商用 F5)暴露。
- 软件与版本:安装受支持的 JDK 8 或 11,下载 Oracle WebLogic Server 12c/14c 安装介质(.jar 或 .zip),不建议通过系统包管理器安装 WebLogic。
- 基础环境:配置 /etc/hosts 或 DNS 解析各节点主机名;开放必要端口(如 7001/7002/5556 等);建议启用 NTP 做时间同步;创建 weblogic 系统用户与目录(如 /opt/weblogic)。
二 安装 WebLogic 与创建域
- 安装 JDK(示例为 OpenJDK 11)
- 执行:
sudo apt update && sudo apt install -y openjdk-11-jdk
- 验证:
java -version
- 安装 WebLogic(示例为 14c)
- 将安装包解压至 /opt/weblogic(或按 Oracle 安装向导执行),准备域目录(如 /opt/weblogic/user_projects/domains)。
- 创建管理域(两种方式)
- 图形化:
/opt/weblogic/wlserver/common/bin/config.sh,按向导创建域与管理员账户。
- WLST 脚本化:使用 WLST 创建域与基础资源配置,便于复用与自动化。
三 配置集群与节点管理器
- 方式 A:控制台配置(直观)
- 登录控制台(默认 http://:7001/console),进入 Environment → Clusters → New,创建集群(如 myCluster)。
- 进入 Environment → Servers,创建若干 Managed Server(如 server1:7002、server2:7003),在“Servers → Configuration → Cluster”中将托管服务器加入 myCluster。
- 方式 B:WLST 配置(可脚本化)
- 进入 WLST:
/opt/weblogic/bin/wlst.sh
- 示例脚本要点:
edit(); startEdit()
cmo.createCluster('myCluster')
- 创建托管服务器:
cmo.createServer('server1','server1.example.com',7002);cmo.createServer('server2','server2.example.com',7003)
- 将服务器加入集群:
cd('/Servers/server1'); cmo.setCluster(getMBean('/Clusters/myCluster'));
- 可选:配置 Node Manager(建议为每个节点启用,便于远程启停与受管服务器生命周期管理)
activate() 提交变更
- 节点管理器要点
- 在各节点准备 Node Manager 目录与启动脚本,使用 nmConnect/nmStart 等 WLST 命令远程管理托管服务器;确保 listenAddress/listenPort 与防火墙策略正确。
四 启动与验证
- 启动顺序
- 启动 Admin Server:
/opt/weblogic/user_projects/domains/<domain>/startWebLogic.sh
- 启动托管服务器:控制台启动,或通过 Node Manager 启动(推荐)。
- 验证要点
- 控制台 Environment → Clusters → Overview 查看集群与服务器状态为 Running。
- 部署测试应用(如简单 war),验证会话复制(如使用 HttpSession 亲和/复制)与故障转移;通过负载均衡器分发请求,停掉某台托管服务器验证自动故障转移。
五 常见问题与优化
- 常见问题
- 节点无法互通:检查 /etc/hosts、安全组/防火墙、监听地址与端口。
- 启动失败:核对 JAVA_HOME、域目录权限、端口占用。
- 会话不复制:确认应用启用会话复制配置,且集群通信正常。
- 优化建议
- 使用 外部 HTTP 负载均衡器做健康检查与权重分发;为管理流量与业务流量分离。
- 启用 日志滚动与 GC 日志,设置合适的堆内存与线程池。
- 全链路 时间同步(NTP),避免因时间漂移导致会话/安全异常。