CentOS7/Linux下金蝶Apusic中间件集群部署与Apache反向代理配置 1. 金蝶Apusic中间件集群部署基础准备在CentOS7/Linux环境下部署金蝶Apusic中间件集群首先需要做好基础环境准备。我建议使用至少三台配置相同的服务器这样能够确保集群的高可用性。实际项目中遇到过因为节点数量不足导致单点故障的情况这点需要特别注意。操作系统建议使用CentOS 7.6以上版本内核版本不低于3.10。部署前需要确认所有节点的系统时间同步时区设置一致。曾经踩过坑集群节点时间不同步导致会话复制异常排查了半天才发现是这个原因。基础软件依赖包括JDK 1.8.0_201及以上版本Oracle JDK或OpenJDK均可系统防火墙需要开放6888、6887等必要端口关闭SELinux以避免权限问题# 检查Java版本 java -version # 关闭防火墙 systemctl stop firewalld systemctl disable firewalld # 关闭SELinux setenforce 0 sed -i s/^SELINUX.*/SELINUXdisabled/ /etc/selinux/config2. 单节点金蝶Apusic安装与配置2.1 安装包部署从金蝶官网获取Apusic安装包如AAS-V9.0.zip上传至所有节点的/opt目录。实测发现使用统一目录结构能减少后续配置复杂度建议所有节点采用相同路径。解压安装包并设置权限mkdir -p /opt/AAS unzip AAS-V9.0.zip -d /opt/AAS chmod -R 755 /opt/AAS2.2 环境变量配置编辑setenv文件配置JDK路径这是很多新手容易出错的地方。注意路径必须与实际安装路径完全一致vi /opt/AAS/bin/setenv # 修改JAVA_HOME配置示例路径请根据实际情况调整 JAVA_HOME/usr/java/jdk1.8.0_2012.3 首次启动与验证启动单节点服务cd /opt/AAS/domains/mydomain/bin/ ./startapusic首次启动会提示设置管理员密码建议记录好密码。启动完成后通过浏览器访问http://节点IP:6888/admin验证是否部署成功。如果无法访问检查端口是否开放以及服务是否正常启动。3. 构建Apusic高可用集群3.1 集群节点配置集群配置主要修改两个关键文件apusic.conf和vm.options。在所有节点上修改apusic.conf中的集群服务配置!-- 在/opt/AAS/domains/mydomain/config/apusic.conf中添加 -- SERVICE CLASScom.apusic.cluster.ClusterService ATTRIBUTE NAMEClusterName VALUEApusicCluster/ ATTRIBUTE NAMEReplicationPolicy VALUEALL/ ATTRIBUTE NAMELoadWeight VALUE100/ ATTRIBUTE NAMEServerName VALUEnode1/ /SERVICE注意每个节点的ServerName必须唯一如node1、node2等而ClusterName必须相同才能组成集群。3.2 会话复制配置为确保会话同步需要配置SessionServiceSERVICE CLASScom.apusic.web.session.SessionService ATTRIBUTE NAMEDistributable VALUETrue/ ATTRIBUTE NAMEReplicable VALUETrue/ ATTRIBUTE NAMESessionStick VALUETrue/ /SERVICE3.3 JVM路由设置在每个节点的vm.options文件末尾添加JVM路由标识# 在/opt/AAS/domains/mydomain/bin/vm.options中添加 apusic.redirect.proxytrue com.apusic.jvm.routenode1 # 每个节点设置为自己的名称4. Apache反向代理与负载均衡配置4.1 Apache基础安装在所有前端代理服务器安装Apacheyum install -y httpd systemctl start httpd systemctl enable httpd4.2 加载必要模块确保加载以下模块LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_balancer_module modules/mod_proxy_balancer.so LoadModule proxy_http_module modules/mod_proxy_http.so4.3 集群代理配置在httpd.conf中添加虚拟主机配置这是实现负载均衡的核心VirtualHost *:80 ProxyRequests off ProxyPass / balancer://apusic_cluster/ stickysessionJSESSIONID nofailoveroff ProxyPassReverse / balancer://apusic_cluster/ Proxy balancer://apusic_cluster BalancerMember http://192.168.1.101:6888/ routenode1 loadfactor1 BalancerMember http://192.168.1.102:6888/ routenode2 loadfactor1 BalancerMember http://192.168.1.103:6888/ routenode3 loadfactor1 /Proxy /VirtualHost关键参数说明stickysessionJSESSIONID 实现会话粘滞nofailoveroff 允许故障转移routenodeX 必须与vm.options中的jvm.route一致5. 集群验证与故障排查5.1 基础功能验证启动所有节点后通过Apache代理访问应用检查请求是否均匀分配到各节点刷新页面是否保持在同一节点会话粘滞关闭一个节点后会话是否迁移到其他节点5.2 常见问题解决问题1会话不同步检查点所有节点ClusterName是否一致SessionService的Distributable和Replicable是否为True防火墙是否阻止了集群通信默认使用随机端口问题2负载不均衡检查点各节点loadfactor设置Apache的proxy_balancer模块是否加载后端节点健康状态问题3启动报错查看日志文件tail -f /opt/AAS/domains/mydomain/logs/server.log6. 生产环境优化建议根据实际项目经验给出以下优化建议系统参数调优# 增加文件描述符限制 echo * soft nofile 65535 /etc/security/limits.conf echo * hard nofile 65535 /etc/security/limits.confJVM参数优化 在setenv中调整内存参数例如JAVA_OPTS-Xms4G -Xmx4G -XX:UseG1GC会话持久化 对于关键业务建议配置会话持久化到数据库ATTRIBUTE NAMEPersisteSession VALUETrue/ ATTRIBUTE NAMEPersisteSessionInterval VALUE60/健康检查 配置Apache对后端节点的健康检查BalancerMember http://192.168.1.101:6888/ routenode1 loadfactor1 ping5监控方案使用Zabbix或Prometheus监控各节点状态设置关键指标告警如线程数、内存使用率等