温馨提示×

WebLogic在Linux上如何集群

小樊
36
2025-12-26 06:27:53
栏目: 智能运维

Linux 上搭建 WebLogic 集群的标准流程


一 架构与前置条件

  • 许可与版本:集群功能需要WebLogic Server 集群许可;各节点需安装相同版本的 WebLogic。生产环境建议使用受管服务器(Managed Server)分布在不同主机,管理服务器(AdminServer)可独立或与应用同机。
  • 网络要求:所有节点需有静态 IP,并位于同一LAN;集群依赖**IP 多播(UDP)**进行发现与通信,尽量避免跨防火墙部署;跨子网/WAN 场景需额外网络设计与验证。
  • 共享存储:为简化配置与一致性,建议使用共享文件系统(如 NFS)存放域与共享对象;若使用共享存储,需配置冗余/RAID等机制避免单点故障。
  • 负载均衡:可选择 WebLogic 内置负载均衡、第三方硬件/软件负载均衡器,或在 Web 层部署 HTTP Server + WebLogic 代理插件进行转发。

二 环境准备与安装

  • 主机与用户:准备两台及以上 Linux 主机(示例:server1、server2),创建专用用户(如 weblogic)与目录(如 /app/weblogic),并统一 JDK(建议 JDK 8 或受支持版本)。
  • 安装 WebLogic(静默安装示例):
    • 准备响应文件与清单文件(如 wls.rsp、oraInst.loc),执行:
      java -jar fmw_12.2.1.3.0_wls.jar -silent -responseFile /app/weblogic/wls.rsp -invPtrLoc /app/weblogic/oraInst.loc
  • 目录与权限:确保安装目录与域目录归属 weblogic 用户,便于后续启停与自动登录。

三 创建域与集群(WLST 示例)

  • 在主控机进入 WLST:
    $WL_HOME/common/bin/wlst.sh
  • 典型脚本(按实际 IP/端口调整):
    readTemplate(‘/u01/oracle/wlserver/common/templates/wls/wls.jar’)
    set(‘AdminServerName’,‘AdminServer’)
    set(‘Name’,‘my_domain’)
    set(‘ProductionModeEnabled’,‘true’)
    cd(‘/Server/AdminServer’)
    set(‘ListenAddress’,‘192.168.1.10’)
    set(‘ListenPort’,7001)
    cd(‘/’)

    创建集群

    create(‘my_cluster’,‘Cluster’)

    在 server1 上创建受管服务器 ms1

    create(‘ms1’,‘Server’)
    cd(‘/Server/ms1’)
    set(‘ListenAddress’,‘192.168.1.10’)
    set(‘ListenPort’,7003)
    assign(‘Server’,‘ms1’,‘my_cluster’)

    在 server2 上创建受管服务器 ms2

    create(‘ms2’,‘Server’)
    cd(‘/Server/ms2’)
    set(‘ListenAddress’,‘192.168.1.11’)
    set(‘ListenPort’,7003)
    assign(‘Server’,‘ms2’,‘my_cluster’)

    可选:创建计算机对象(便于按主机管理)

    create(‘machine1’,‘Machine’)
    assign(‘Server’,‘ms1’,‘machine1’)
    create(‘machine2’,‘Machine’)
    assign(‘Server’,‘ms2’,‘machine2’)

    写入域并退出

    writeDomain(‘/app/weblogic/user_projects/domains/my_domain’)
    exit()
  • 将生成的域目录同步到 server2(如使用 rsync/scp),保持 域目录结构一致

四 启动与组网

  • 启动顺序建议:先启动 AdminServer,再启动各受管服务器。
  • 方式一(命令行,推荐):
    • server1:
      nohup ./startWebLogic.sh &
      nohup ./startManagedWebLogic.sh ms1 http://192.168.1.10:7001 &
    • server2:
      nohup ./startManagedWebLogic.sh ms2 http://192.168.1.10:7001 &
  • 方式二(节点管理器 Node Manager,可选):
    • 在各节点启动 NM:
      ./startNodeManager.sh
    • 通过控制台或 WLST 将 ms1/ms2 的“节点管理器”配置为对应主机与端口,然后在控制台远程启动受管服务器。
  • 验证:
    • 控制台查看:环境 > 服务器 状态为 RUNNING集群页显示 ms1、ms2 已加入 my_cluster
    • 日志:检查 AdminServer.log、ms1.log、ms2.log 无异常。

五 负载均衡与会话保持

  • 前置检查:确保集群内各实例间网络互通,且未被防火墙阻断多播;跨机房/跨域需评估多播可达性与延迟。
  • 方案 A(Web 层代理 + 插件):在 DMZ 部署 Apache HTTP Server + WebLogic Proxy Plug-In,将应用以“集群目标”发布,由插件完成负载分发与会话粘滞(Sticky Session)。
  • 方案 B(内置/第三方负载均衡):使用 WebLogic 内置负载均衡F5/NGINX 等,将请求分发至各受管服务器。
  • 会话保持策略:
    • 无状态应用:优先使用无状态会话复制(如应用层无状态设计)。
    • 有状态应用:启用 In-Memory Session Replication(需确保会话可序列化),或使用 JDBC Session Persistence(数据库存储会话,可靠性更高但性能略低)。
  • 部署与测试:将应用以“集群部署”方式发布,使用压力工具与故障演练(停一台受管服务器)验证会话保持故障转移

0