Linux 上 WebLogic 集群配置实操指南
一 架构与前置准备
- 架构要点:至少准备2 台 Linux 服务器(建议同版本操作系统),规划1 个管理服务器 AdminServer与多个受管服务器 Managed Server,将受管服务器加入集群 Cluster;前端使用外部负载均衡器(如商用或开源 LB)做 HTTP 接入,集群内通过 T3 协议进行通信与会话复制(如使用“复制会话”策略)。
- 基础环境:安装并统一 JDK 8(或项目要求的版本),创建 weblogic 系统用户与目录,确保节点间网络互通(开放必要端口,如 7001/7002/T3 端口/节点管理器端口)。
- 共享资源:若使用JDBC 数据源,建议配置**共享存储(NAS/SAN)**或数据库高可用,避免单点。
- 安全基线:建议仅开放必要端口,禁用不必要服务,按企业规范加固 OS 与 WebLogic。
二 安装 WebLogic 与创建域
- 安装介质与环境
- 以 WebLogic 12c/14c 为例,上传安装包(如 fmw_14.1.1.0.0_wls_lite_generic.jar 或 wls_12.2.1.4.0_wls_generic.jar)至各节点。
- 创建用户与目录并授权:
- groupadd weblogic && useradd -g weblogic weblogic
- mkdir -p /opt/weblogic && chown -R weblogic:weblogic /opt/weblogic
- 配置环境变量(/etc/profile 或 weblogic 用户 profile):
- export JAVA_HOME=/usr/java/jdk1.8.0_191
- export PATH=$JAVA_HOME/bin:$PATH
- 静默安装(示例)
- 准备响应文件与清单:
- /opt/weblogic/oraInst.loc:inventory_loc=/opt/weblogic/oraInventory;inst_group=weblogic
- /opt/weblogic/wls.rsp:设置 ORACLE_HOME、INSTALL_TYPE=WebLogic Server 等
- 执行安装:
- su - weblogic
- java -jar fmw_14.1.1.0.0_wls_lite_generic.jar -silent -responseFile /opt/weblogic/wls.rsp -invPtrLoc /opt/weblogic/oraInst.loc
- 创建域(两种方式)
- 控制台方式:运行 /opt/weblogic/oracle/middleware/wlserver/common/bin/config.sh,按向导创建域、配置 AdminServer 监听地址与端口(常用 7001)。
- WLST 方式:
- $WL_HOME/common/bin/wlst.sh
- readTemplate(‘/opt/weblogic/oracle/middleware/wlserver/common/templates/wls/wls.jar’)
- set(‘AdminServerName’,‘AdminServer’); set(‘ProductionModeEnabled’,‘true’); set(‘Name’,‘my_domain’)
- cd(‘/Server/AdminServer’); set(‘ListenAddress’,‘192.168.1.10’); set(‘ListenPort’,7001)
- writeDomain(‘/opt/weblogic/user_projects/domains/my_domain’); closeTemplate(); exit()
- 建议:将域目录统一放在 /opt/weblogic/user_projects/domains,便于运维与备份。
三 配置集群与受管服务器
- 方式一:控制台配置(直观)
- 登录控制台(http://:7001/console),进入环境 → 集群 → 新建,创建集群(如 my_cluster)。
- 进入环境 → 服务器 → 新建,在每台主机上创建受管服务器(如 server1:7003、server2:7004),在服务器设置中指定**计算机(Machine)**与监听地址。
- 将受管服务器分配到 my_cluster。
- 方式二:WLST 脚本示例(可复用)
- 在主控节点执行 WLST:
- readTemplate(‘/opt/weblogic/oracle/middleware/wlserver/common/templates/wls/wls.jar’)
- set(‘AdminServerName’,‘AdminServer’); set(‘ProductionModeEnabled’,‘true’); set(‘Name’,‘my_domain’)
- cd(‘/Server/AdminServer’); set(‘ListenAddress’,‘192.168.1.10’); set(‘ListenPort’,7001)
- create(‘my_cluster’,‘Cluster’)
- create(‘server1’,‘Server’); assign(‘Server’,‘server1’,‘my_cluster’)
- cd(‘/Server/server1’); set(‘ListenAddress’,‘192.168.1.11’); set(‘ListenPort’,7003)
- create(‘server2’,‘Server’); assign(‘Server’,‘server2’,‘my_cluster’)
- cd(‘/Server/server2’); set(‘ListenAddress’,‘192.168.1.12’); set(‘ListenPort’,7004)
- writeDomain(‘/opt/weblogic/user_projects/domains/my_domain’); closeTemplate(); exit()
- 节点管理器 Node Manager(推荐)
- 在各节点启动 Node Manager(域 bin 目录):nohup ./startNodeManager.sh &
- 控制台中注册并启动受管服务器,或命令行通过 Node Manager 启动,便于集中控制与自动重启。
四 启动与验证
- 启动顺序
- 启动 AdminServer:nohup ./startWebLogic.sh &(或使用脚本/Node Manager)。
- 启动受管服务器:nohup ./startManagedWebLogic.sh server1 http://:7001 &(或使用 Node Manager)。
- 验证要点
- 控制台检查:环境 → 服务器 与 环境 → 集群 状态均为 RUNNING。
- 连通性:从任一节点使用 t3://<目标IP>:<目标端口> 测试到各受管服务器的 T3 可达性。
- 部署测试:部署一个测试应用(如简单 war),开启会话复制(如使用“复制会话”),通过前端 VIP/LB 访问,验证负载均衡与故障转移。
五 常见问题与优化建议
- 常见问题
- 节点无法加入集群:检查 /etc/hosts、防火墙/SELinux、T3 端口与 ListenAddress 配置是否正确。
- 启动缓慢:设置 -Djava.security.egd=file:/dev/./urandom 加速熵源初始化。
- 凭据频繁输入:在各受管服务器的 servers//security/boot.properties 中写入 username/password,下次自动登录。
- 会话粘滞与复制:HTTP 接入建议开启 Sticky Session;集群内根据业务选择内存复制或JDBC 复制策略。
- 优化建议
- 使用 外部负载均衡器(HTTP/HTTPS)统一接入与健康检查。
- 为 JDBC 数据源配置多实例/高可用与连接池参数。
- 启用 日志滚动与GC 日志,结合 Prometheus/Grafana 或 Nagios 做监控告警。