Ubuntu上搭建WebLogic集群的可执行步骤
一 环境准备与规划
- 准备至少2台Ubuntu 20.04/22.04主机,安装JDK 11(示例命令:sudo apt update && sudo apt install openjdk-11-jdk),每台主机规划固定IP与主机名,并打通7001/7002/5556等管理、节点管理、通道端口的防火墙与安全组。
- 规划域与实例:建议创建1个管理服务器(AdminServer),每台主机至少1个受管服务器(Managed Server),并为集群设置唯一名称与Cluster Address(可用DNS名或逗号分隔的服务器列表,生产环境优先DNS或硬件/软件负载均衡)。
- 通信模式选择:WebLogic集群支持多播(Multicast)与单播(Unicast)两种消息模式;跨机房或云环境优先Unicast以避免多播限制。
- 重要限制:不要使用共享文件系统运行多个实例,避免单点竞争与可用性风险;每台机器的Server实例名必须唯一。
二 安装WebLogic与创建域
- 安装WebLogic(示例为14c通用包):
- 下载安装包(Oracle账号或授权渠道),解压至/opt;创建系统用户与目录并赋权:
sudo groupadd -r weblogic
sudo useradd -r -g weblogic -d /opt/weblogic weblogic
sudo chown -R weblogic:weblogic /opt/weblogic
- 使用Configuration Wizard创建域(GUI或静默方式):/opt/weblogic/oracle_common/common/bin/config.sh,选择“创建新域”,在向导中按需添加受管服务器(暂不加入集群)。
- 可选静默域模板(示例):
/opt/weblogic/wlserver/common/bin/wlst.sh create_domain.py(模板中预置AdminServer与若干MS)。
三 配置集群与受管服务器
- 方式A(控制台):
- 登录控制台,进入Environment > Clusters > Configure a New Cluster,填写Name与Cluster Address;在Messaging选择Unicast或Multicast(多播地址范围224.0.0.0–239.255.255.255);在Servers页将受管服务器分配到集群。
- 在Environment > Machines为每台主机创建Machine对象,并在各受管服务器的配置中设置Machine属性,便于节点管理与故障转移。
- 方式B(WLST脚本示例,创建集群并将两台受管服务器加入):
connect(‘weblogic’,‘weblogic’,‘t3://adminhost:7001’)
edit()
startEdit()
创建集群(Unicast示例)
cd(‘/’)
cmo.createCluster(‘MyCluster’)
cd(‘Clusters/MyCluster’)
cmo.setMessagingMode(‘unicast’)
cmo.setUnicastBroadcastChannel(‘’) # 使用默认通道
将MS加入集群(示例MS:ms1、ms2;listen地址为各主机IP)
cd(‘/Servers/ms1’)
cmo.setCluster(getMBean(‘/Clusters/MyCluster’))
cd(‘/Servers/ms2’)
cmo.setCluster(getMBean(‘/Clusters/MyCluster’))
save()
activate()
disconnect()
完成后在控制台检查集群成员与通信模式是否正确。
四 配置节点管理器与启动顺序
- 在每台主机部署并配置Node Manager(建议作为系统服务):
- 复制/创建nm.properties(示例关键项):
ListenAddress=主机IP
ListenPort=5556
SecureListener=false(测试环境,生产建议启用SSL)
- 启动:/opt/weblogic/wlserver/server/bin/startNodeManager.sh
- 控制台启用节点管理:进入Environment > Machines > 目标主机 > Node Manager,设置Type=SSL/Plain与端口,保存。
- 启动顺序与纳管:
- 先启动AdminServer(/opt/weblogic/user_projects/domains//bin/startWebLogic.sh);
- 在控制台或WLST中对各Managed Server执行Start/Stop操作,使其受Node Manager纳管;
- 观察控制台“Servers”页状态为RUNNING,集群页显示成员健康。
五 对外发布与验证
- 客户端接入:为集群设置Cluster Address(如DNS名或“host1:7002,host2:7002”列表),生产环境建议使用DNS轮询或硬件/软件负载均衡器(如F5、Nginx/HAProxy)对外暴露VIP,避免直接暴露多个实例地址。
- 会话与可用性验证:
- 部署示例Web应用(开启会话复制或在应用内打印server name),通过浏览器与负载均衡访问,刷新与故障演练(停一台MS)验证会话保持与故障转移;
- 在控制台检查Clusters > Monitoring的Servers与Load Balancing指标,确认请求分发与健康状态。