在 Debian 上搭建 WebLogic 集群的实操步骤
一 环境准备与规划
- 准备至少2 台 Debian 主机(建议 Debian 11/12),每台至少 2 核 CPU、8GB 内存、200GB 存储,并可通过 SSH 互通。
- 安装 Java(示例选用 OpenJDK 11):
sudo apt update && sudo apt install -y openjdk-11-jdk
java -version
- 规划网络与端口:
- 管理服务器(AdminServer)示例端口:7001
- 托管服务器(Managed Server)示例端口:7002/7003
- 节点管理器(Node Manager)示例端口:5556
- 规划集群名称(如:myCluster),以及每台主机上的托管服务器名称与监听地址(建议使用主机 IP 而非主机名,避免解析问题)。
- 同步时间(生产强烈建议):
sudo apt install -y ntp
sudo timedatectl set-ntp true
上述准备与端口规划为后续集群通信、控制台访问与节点管理提供基础。
二 安装 WebLogic Server
- 在每台主机下载并解压 WebLogic(示例为 14.1.1.0.0 通用安装包):
wget https://download.oracle.com/otn/weblogic/weblogic-server-new-feature-pack-1411/141100/fmw_14.1.1.0.0_wls_lite_Disk1_1of1.zip
unzip fmw_14.1.1.0.0_wls_lite_Disk1_1of1.zip -d /opt
sudo mv /opt/fmw_14.1.1.0.0_wls_lite /opt/weblogic
- 建议创建专用用户(如 weblogic)并授权域目录:
sudo useradd -m -s /bin/bash weblogic
sudo chown -R weblogic:weblogic /opt/weblogic
- 验证安装:
/opt/weblogic/wlserver/server/bin/setWLSEnv.sh
java weblogic.version
以上步骤完成 WebLogic 软件在 Debian 上的解压与环境准备,后续域与集群均在此环境中创建。
三 创建域与集群
- 方式一 控制台创建(通用、直观)
- 在主机 A 上启动配置向导创建域(或使用已有域):
/opt/weblogic/wlserver/common/bin/config.sh
选择“Create a new WebLogic Domain”,模板选 Basic WebLogic Server Domain,设置域路径(如:/opt/weblogic/user_projects/domains/base_domain),设置管理员账号与密码。
- 启动 AdminServer:
/opt/weblogic/user_projects/domains/base_domain/startWebLogic.sh
- 访问控制台:打开浏览器访问 http://<主机A_IP>:7001/console,使用管理员登录。
- 在控制台创建集群:进入 Environment → Clusters → New,填写名称(如:myCluster),选择“Unicast”或“Multicast”通信方式(若同网段且无组播限制可用 Multicast;跨机房/云环境优先 Unicast)。
- 创建托管服务器:进入 Environment → Servers → New,在每台主机各创建一个托管服务器(如 server1:7002、server2:7003),并在“Cluster”处选择 myCluster。
- 分发并启动托管服务器:将域目录拷贝到主机 B,修改各托管服务器的 Listen Address 为本机 IP,分别在各自主机上启动托管服务器(可在控制台 Remote Start 或命令行启动)。
- 方式二 WLST 脚本创建(可重复、便于自动化)
- 连接 AdminServer:
/opt/weblogic/wlserver/server/bin/wlst.sh
connect(‘weblogic’,‘密码’,‘t3://<主机A_IP>:7001’)
- 创建集群与托管服务器:
edit()
startEdit()
创建集群
cd(‘Environment/Clusters’)
cmo.createCluster(‘myCluster’)
主机A托管服务器
cd(‘/’)
cmo.createServer(‘server1’)
cd(‘Servers/server1’)
cmo.setListenAddress(‘<主机A_IP>’)
cmo.setListenPort(7002)
cd(‘/’)
assign(‘Server’,‘server1’,‘Cluster’,‘myCluster’)
主机B托管服务器
cmo.createServer(‘server2’)
cd(‘Servers/server2’)
cmo.setListenAddress(‘<主机B_IP>’)
cmo.setListenPort(7003)
cd(‘/’)
assign(‘Server’,‘server2’,‘Cluster’,‘myCluster’)
activate()
exit()
- 启动托管服务器后,在控制台验证 myCluster 的 Running 状态与成员健康。
以上两种方式为在 Debian 上建立域与集群的常用路径,控制台适合首次搭建,WLST 适合标准化与自动化部署。
四 会话复制与负载均衡
- 会话复制要点
- 应用需启用会话持久化:在 weblogic.xml 中设置 replicated(或数据库/文件系统存储)。
- 集群通信:同网段可用 Multicast,跨机房/云环境建议 Unicast;确保各托管服务器之间 7002/7003 等端口及集群通信端口互通。
- 服务器级负载权重:可在服务器模板或服务器配置中设置 Cluster Weight(权重越高承载越多),用于细粒度流量分配。
- 前端负载均衡
- 方案 A:使用 HAProxy(示例片段):
frontend web_front
bind *:80
mode http
default_backend web_cluster
backend web_cluster
mode http
balance roundrobin
server server1 <主机A_IP>:7002 check inter 5s fall 3 rise 2
server server2 <主机B_IP>:7003 check inter 5s fall 3 rise 2
- 方案 B:使用 Apache HTTP Server + mod_wl(WebLogic 插件)进行会话粘滞与健康检查。
- 会话粘滞:如使用硬件/云 LB,建议开启 Sticky Session;无粘滞时务必确保应用支持无状态或可复制会话。
以上配置确保集群具备横向扩展能力与高可用特性,权重与复制策略可在控制台或 WLST 中按需调整。
五 验证与运维要点
- 验证
- 控制台检查:Environment → Clusters 中 myCluster 状态为 Running,各托管服务器 Health 为 OK。
- 部署测试应用:将应用部署到 myCluster,通过 LB 访问,验证请求在 server1/server2 间分发与会话保持。
- 故障演练:停止某台托管服务器,确认业务不中断、会话可恢复。
- 运维
- 启动顺序:先 AdminServer,再各 Managed Server;停机顺序相反。
- 日志与诊断:关注 AdminServer.log、serverX.log 与 access.log,异常时开启 Debug。
- 安全:限制管理端口访问(仅内网/跳板机)、启用 SSL/TLS、定期更新 JDK/WebLogic 补丁。
- 时间同步:生产环境务必启用 NTP,避免因时间漂移导致集群异常。
以上验证与运维实践可确保集群稳定上线与持续可用。