# 致远协同管理软件集群部署手册
北京致远互联软件股份有限公司
2024年7月
# 前言
本手册对协同管理系统的集群部署相关事宜进行说明。
这里特指协同服务集群,不涉及数据库集群(数据库集群联系专业厂商解决);也不涉及全文检索等扩展服务集群(参考扩展服务手册)
如对手册存在疑问,可与致远互联的客户服务人员联系。
# 修订记录
修订内容 | 修订时间 |
---|---|
重新梳理集群部署手册章节及内容,确保结构易读、易懂 | 2025-4-15 |
# 环境准备
# 部署拓扑图
对比协同单机模式,协同集群所需资源更多,需要增加如下服务:
- (一)负载均衡服务:Nginx、F5等软硬件提供web负载均衡服务,用于均衡分发流量到不同协同节点,Nginx所需配置2C4G起步
- (二)协同服务主从多节点:一台协同主节点,一台或多台协同从节点组成集群,所需硬件配置见《产品服务器环境准备》手册阶梯资源要求
- (三)共享目录:方便协同集群节点共享上传下载附件文件
- (四)Redis缓存服务:方便协同集群节点共享读写缓存数据,所需硬件配置见《产品服务器环境准备》手册阶梯资源要求
# 概要说明
集群部署结构有以下注意事项:
- 集群结构支持多节点、水平集群,不支持垂直集群(多节点部署在同一服务器)
- 集群环境,只需在协同主节点放置加密授权文件
- 集群环境对数据库和中间件无特殊要求,只要确保当前产品线支持集群部署即可
- 集群支持Nginx、F5等软硬件提供web负载均衡服务,Nginx只支持Linux系统进行负载均衡(依赖Sticky模块只能用Linux)
- 集群模式下使用Redis进行缓存管理,支持Redis单机和Redis三主三从集群,需自行安装服务
- 集群对服务器软硬件、网络等均有明确要求,在进行软件部署前,请务必阅读《产品服务器环境准备》手册,并进行相关环境准备。
协同集群标准产品支持的环境如下:
分类 | 标准适配范围 | 备注 |
---|---|---|
协同产品线 | G6+、A8+、A8-N、G6-N V9.0SP1 | |
服务器代理服务 | Nginx1.12.1及以上版本(必须部署在Linux)、F5硬负载等 | 建议使用较高稳定版本,以减少漏洞和BUG |
服务器缓存服务 | Redis5以上 | 建议使用较高稳定版本,以减少漏洞和BUG |
# 集群部署配置
# 集群部署步骤概览
集群配置主要有以下步骤:
第一步,进行协同单机部署,确保单机模式能启动使用
第二步,部署配置Web负载均衡服务(如Nginx,仅指向协同单机也有效),确保通过Web负载均衡能访问协同单机系统
第三步,配置共享目录,将第一步单机模式的附件、资源文件迁移到共享目录,确保协同、全文检索等服务能使用共享目录
第四步,部署Redis服务
第五步,将第一步部署的协同设置成主节点,单机调整为集群连接Redis,启动验证集群模式仅主节点存活是否可以通过Web负载均衡服务访问
第六步,安装一套新的单机环境,或复制主节点程序到从节点,修改配置,将其设置成从节点
第七步,以上完成后做全面验证
# 一、进行协同单机部署
在进行集群部署前,先部署一套单机系统,确保单机系统可用,后续将其设置成集群模式的主节点。
单机部署步骤见对应操作系统的《部署维护手册》,需要满足如下要求:
- 确保数据库、附件、程序等文件部署完成
- 确保加密授权正确放置(集群仅主节点需要加密授权)
- 确保系统能正常启动、访问
- 信创与非信创均一样,参考对应部署手册部署单机
# 二、部署Web负载均衡服务
协同集群模式需要web服务做负载均衡时会话保持(或会话粘滞),会话保持机制的意义在于,确保将来自相同客户端的请求,转发至后端相同的服务器进行处理。协同支持Nginx、F5(隶属F5 NetWorks公司的负载均衡设备)作为Web服务。依据实际情况,可以自由选择Web服务。
如采用硬件负载或云负载,将会话保持策略要求提供给客户:
- 标准产品支持的会话保持策略为:七层会话保持(基于cookie识别)。
- 四层会话保持(标准产品不支持):基于源IP地址的简单会话保持,将请求的源IP地址作为散列键,确保来自同一IP地址的访问请求被转发到同一台后端服务器上。
- 七层会话保持(标准产品支持):通过HTTP或HTTPS协议,使用负载均衡器生成的cookie或后端应用生成的cookie来识别用户,确保包含相同cookie值的请求被转发到同一台后端服务器上。
如采用Nginx做Web负载均衡服务,需要用到nginx-sticky-module模块的会话粘滞能力,此模块目前仅支持Linux系统。
详细安装部署步骤可以参照Nginx相关离线文档部署,或参考在线文档部署:《Nginx源码编译安装》 https://open.seeyoncloud.com/#/faq/vuepressFile/v1/share?url=Z2ptZkplPjI6Njk=
注:使用
yum install nginx
包管理工具安装不带sticky模块,无法实现协同所需的负载均衡
安装Nginx后,参考离线手册或在线文档《反向代理和负载均衡》进行负载均衡配置 https://open.seeyoncloud.com/#/faq/vuepressFile/v1/share?url=Z2ptZkplPjIzMzQ=
以下是Nginx配置核心代码,重点调整upstream{}模块:
省略若干其它配置
http {
省略若干其它配置
upstream seeyon_v5_cluster{
# 集群核心配置:将协同所有节点配置在此处即可由NG实现负载均衡
sticky;
server 192.168.94.137:80 max_fails=300 fail_timeout=30s;
server 192.168.94.138:80 max_fails=300 fail_timeout=30s;
}
# server{}代码块中的内容原封不动复制过去使用
server {
listen 80;
server_name localhost;
charset utf-8;
location / {
proxy_pass http://seeyon_v5_cluster;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect http:// $scheme://;
#proxy_redirect off;
proxy_connect_timeout 300;
proxy_read_timeout 300;
proxy_send_timeout 300;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
如协同集群需要采用HTTPS,配置方式只是稍做调整,可以参照Nginx相关离线文档配置,或参考在线文档格式配置《Nginx反向代理协同配置(https)》 https://open.seeyoncloud.com/#/faq/vuepressFile/v1/share?url=Z2ptZkplPjM0NzM=
# 三、配置共享目录
# 共享目录说明
涉及目录的配置项,需要确保协同集群各节点物理存储位置一致,故要求配置共享目录。
共享目录方案有很多种,需要客户自行准备,比如NAS存储,或Linux自建NFS、Windows自建SMB协议共享目录。
共享目录需要采用sync同步模式,确保共享文件一致性
建议先行在单机环境下配置成共享目录,测试功能可用性,后续集群节点复制相关配置即可。涉及目录修改点如下:
- 公共资源目录(ctp.public.folder):影响门户、云联、cap等应用的使用
- 附件目录(upload):影响用户上传的附件使用
- 邮件保存目录(webmail.savePath):影响邮件应用的使用
- Office转换文件目录:影响在线预览应用的使用
# 修改公共资源目录resources
公共资源目录存储门户、云联、cap等应用的配置和资源文件,默认存放于协同程序目录\base\resources下。需要将默认的resources资源迁移到共享目录下,随后按如下方法修改地址。
集群环境需要将共资源目录迁移到共享目录下,可运行SeeyonConfig,在"系统参数设置"页签,找到"ctp.public.folder"选项并修改成共享目录地址:
无法唤起SeeyonConfig系统,可直接修改 协同程序目录/base/conf/systemCtp.properties
文件,参考如下参数配置:
ctp.public.folder = /mnt/share/resources
# 修改附件目录upload
附件目录存储用户上传的所有业务文件,默认存放于协同程序目录\base\upload下。需要将默认的upload资源迁移到共享目录下,随后按如下方法修改地址。
登录协同系统,使用系统管理员账号进行配置:切换到系统管理员门户,在系统管理界面中,找到 [系统分区管理]
,主要涉及两个地址的修改:
- 分区路径:设置为共享目录下的upload地址
- 全文检索网络映射路径:全文检索服务器挂载路径,设置为共享目录下的upload地址
如无法进入系统管理员后台,可以由DBA进入协同数据库查看、新增、修改附件配置:
-- 系统分区管理表
select * from ctp_partition;
# 修改邮件保存目录webmail.savePath
邮件保存目录,通过SeeyonConfig,在"系统参数设置"页签,找到"webmail.savePath"并修改,修改方法同“公共资源目录resources”。
# 修改Office转换文件目录地址
自V9.0SP1 930版本开始,Office转换目录地址通过系统管理员访问“流版签设置”菜单,进行在线预览配置:
# 静态化登录前门户配置
集群部署时必须将Apachejetspeed\webapps\sportal目录主从节点进行相互共享,使得主从服务都能访问sportal下的静态文件和目录。
1、Apachejetspeed\webapps\sportal\archive目录是静态化文件的存储目录,所有静态化登录前门户的相关数据文件存放在这里,不能随意删除,否则会造成数据丢失和显示异常。
2、如果升级更新服务,建议升级前先将Apachejetspeed\webapps\sportal\archive目录进行备份,之后再做升级。
静态化登录前门户OBS对象存储设置:
如果文件服务使用了obs对象存储,静态化登录前门户生成的静态资源也需要进行obs配置。
用文本编辑器打开ApacheJetspeed\webapps\sportal\WEB-INF\sportal.properties文件:
将isRemote 属性改为true,开启obs模式。
修改remoteFilePrefixPath属性的值,为OA系统的webapps文件夹全路径,需要以文件夹分隔符结尾
修改remoteFilePath属性的值,为登录前门户静态资源存放的最上层文件夹名称。
# 参考:Linux开启NFS共享目录
如客户基于Linux进行共享目录设置,可参考本章手册开启NFS:
NFS服务器:更新软件源,安装依赖
# Debian及其衍生发行版(如Ubuntu)运行如下命令
sudo apt update && sudo apt upgrade -y
sudo apt install nfs-kernel-server -y
# RedHat体系(如CentOS)使用yum或dnf作为包管理工具
sudo yum update -y
sudo yum install nfs-utils -y
NFS服务器:创建共享目录
假设你要共享的目录是 /mnt/share
。
# 创建共享目录:
sudo mkdir -p /mnt/share
# 设置目录权限:
sudo chmod 777 /mnt/share
NFS服务器:配置 NFS 共享:
# 打开/etc/exports配置文件
sudo nano /etc/exports
# 在/etc/exports配置文件中添加共享权限:注意/mnt/share对应NFS地址
/mnt/share *(rw,sync,no_root_squash)
# 如果想设置指定服务器才能访问,则添加对应IP信息
/mnt/share 192.168.94.138(rw,sync,no_root_squash) 192.168.94.139(rw,sync,no_root_squash)
NFS服务器:以上配置后执行导出共享目录:
sudo exportfs -a
NFS服务器:启动NFS服务:
# 启动 NFS 服务:
sudo systemctl start nfs-server
# 设置开机自启:
sudo systemctl enable nfs-server
#检查 NFS 服务状态:
sudo systemctl status nfs-server
NFS服务器:根据实际情况开启防火墙放行,确保协同服务器、全文检索服务器等都能访问到共享目录。
注意:以上是NFS服务器开启了共享,对于所有协同节点,都需要配置NFS客户端才能挂载到NFS服务器目录:
NFS客户端:挂载到共享目录配置方法:
# Debian及其衍生发行版(如Ubuntu)运行如下命令
sudo apt update && sudo apt upgrade -y
sudo apt install nfs-common -y
# RedHat体系(如CentOS)使用yum或dnf作为包管理工具
sudo yum update -y
sudo yum install nfs-utils -y
# NFS客户端:协同节点安装NFS客户端-创建挂载点:
sudo mkdir -p /mnt/share
# NFS客户端:绑定NFS服务器挂载路径,其中IP地址是NFS服务器地址
# mount如果长时间无反应或提示mount.nfs: No route to host则先考虑在nfs服务器的防火墙增加规则-允许指定IP通过nfs访问
sudo mount -t nfs -o sync,noac 192.168.94.136:/mnt/share /mnt/share
# 检查mount结果
df -h
vim /etc/fstab
# 设置开机自动挂载
192.168.94.136:/mnt/share /mnt/share nfs sync,noac 0 0
# 参考:Windows Server开启共享目录
如客户基于Windows进行共享目录设置,可参考本章手册开启SMB协议和共享磁盘:
步骤 1:启用 SMB 共享功能:
打开服务器管理器 - 开始菜单 - 搜索服务器管理器。
在“服务器管理器”中,点击左侧的“添加角色和功能”,按照向导逐步操作,确保选择了以下内容:
- 文件和存储服务
- 角色服务:文件和打印机共享
启用 SMB 共享
在“角色服务”中,确保选择了“SMB 服务器”
完成安装并向导
步骤 2:创建共享文件夹
假设你要共享的文件夹是 D:\share
。
- 右键单击
D:\share
文件夹,选择“属性”,切换到“共享”选项卡,点击“高级共享”,勾选“共享此文件夹” - 然后点击“权限”,添加允许访问的服务器IP地址(将协同服务器、全文检索服务器都配置上),并赋予读写权限:确保权限设置为“完全控制”或“读取和写入”。
步骤3:获取共享路径: 返回“共享”选项卡,复制共享路径使用(例如:\\192.168.94.137\share
)。
以上完成后,我们在配置附件和资源文件时,共享目录路径就是 \\192.168.94.137\share\xxx
这样的示例格式。
# 四、部署Redis服务
# Redis部署
Redis服务用于协同集群部署模式时的缓存管理,标准产品支持:单机Redis或三主三从Redis集群。
Redis服务由客户准备,或参照手册部署:
Redis单机部署手册 https://open.seeyoncloud.com/#/faq/vuepressFile/v1/share?url=Z2ptZkplPjIzMzc=
Redis三主三从集群部署手册 https://open.seeyoncloud.com/#/faq/vuepressFile/v1/share?url=Z2ptZkplPjI5Mg==
修改redis.conf
,Redis服务参数配置要求如下:
# redis监听的地址(即redis服务器网卡IP)
bind 192.168.94.136
# 端口号,默认6379
port 6379
# 以独立进程打开,默认yes
daemonize yes
# 关闭AOF持久化,默认no
appendonly no
# 设置Redis远程密码
requirepass Seeyon123456
# 关闭RDB持久化
save ""
# 所有save 数字 数字全部都注释
# save 900 1
# save 300 10
# save 60 10000
注意:将Redis监听的端口放入防火墙白名单。
# Redis配置
Redis单机模式: 通过SeeyonConfig或修改协同程序目录/base/conf/plugin.properties文件,配置如下参数:
# 数字1开启Redis单机模式
redis.enabled = 1
# Redis密码,密码加密,需要通过可以打开SeeyonConfig的环境设置密码再做拷贝
redis.password = /2.4/W4sIjUIBoWYH7Jx+adzAfA==
# Redis单机服务地址
redis.host = 192.168.94.136
# 指定Redis哪个实例给协同,从0到15,默认实例15
redis.db = 15
# Redis端口
redis.port = 6379
Redis集群模式: 通过SeeyonConfig或修改协同程序目录/base/conf/plugin.properties文件配置如下参数:
# 数字2开启Redis三主三从集群
redis.enabled = 2
# Redis三主三从6个节点,格式要求每个节点的IP:端口
redis.cluster.address1 = 10.3.4.11:6379
redis.cluster.address2 = 10.3.4.11:6380
redis.cluster.address3 = 10.3.4.12:6379
redis.cluster.address4 = 10.3.4.12:6380
redis.cluster.address5 = 10.3.4.13:6379
redis.cluster.address6 = 10.3.4.13:6380
# Redis密码,密码加密,需要通过可以打开SeeyonConfig的环境设置密码再做拷贝
redis.cluster.password = /2.4/W4sIjUIBoWYH7Jx+adzAfA==
# 五、协同单机切换集群主节点
完成Redis部署后,将协同单机切换成协同集群主节点,并连接Redis,启动验证集群模式仅主节点存活是否可以通过Web负载均衡服务访问。
协同单机服务停止,再通过SeeyonConfig或修改 协同程序目录/base/conf/cluster.properties
文件,将单机切换为集群主节点:
注意: 集群节点还需要配置Redis信息,参考【Redis配置】章节检查。
# 本机IP
cluster.localhost=192.168.94.137
# 设置本机为主节点
cluster.main=true
# 本机协同服务端口
cluster.port=80
# 集群/双击标识
cluster.name=4EF396BE-A382-4876-B8F1-5854D1DE3CAB
# 列出集群所有节点,以半角逗号隔开
cluster.hosts=192.168.94.137,192.168.94.138
# 设置集群节点,取IP最后一位
cluster.host.index=137
# 启用集群
cluster.enabled=true
注意:信创环境端口号无法通过SeeyonConfig自定义,端口号由中间件管理。
# 六、部署协同从节点
产品支持一主节点、多从节点的集群模式,项目上根据用户实际使用情况来判断建设几套从节点(可参考《产品服务器环境准备》手册阶梯资源要),从节点建设方法一致。
安装一套新的单机环境,或复制主节点程序到从节点,修改配置,将其设置成从节点。
为了确保集群一致性,要求从节点程序与主节点完全一致,系统配置和插件配置一致,方案有多种:
- 方案一:1比1复制集群主节点的程序,再将其调整成从节点,Windows和Linux(内置Tomcat)很适合此方案
- 方案二:部署一套全新的单机模式,打与主节点相同的补丁包,再将其调整成从节点,信创环境由于需要Seeyon程序和中间件均做调整,故信创环境适合此方案
- 方案三:针对东方通、金蝶中间件,(在中间件厂商的指导下)可将中间件程序及配置1比1复制到从节点,随后将协同Seeyon程序也1比1复制到从节点,此方案适用熟悉信创的技术顾问操作
注意:确保将从节点加入Nginx负载均衡配置中:
# 方案一:主节点同步到从节点
如集群环境是Linux系统, 可执行如下方案:
1、从节点先创建与主节点1比1相同的目录:mkdir -p /data/Seeyon
2、然后回到主节点,通过rsync命令将主节点的OA目录1比1同步给从节点(如rsync不可用,也可以采用其它方案将主节点程序拷贝到从节点)
rsync -av --progress /data/Seeyon/A8 root@192.168.94.138:/data/Seeyon/
3、如Linux采用NFS,需参考主节点相同方案配置NFS目录
4、同步过来之后需要修改从节点的SeeyonConfig或修改 协同程序目录/base/conf/cluster.properties
文件:取消“设为主服务”的选项,集群双机标识要保留跟主节点一样,设置当前节点IP:
# 本机IP
cluster.localhost=192.168.94.138
# 是否为主节点设置为false(不是)
cluster.main=false
# 本机协同服务端口
cluster.port=80
# 保持跟主节点的一致
cluster.name=4EF396BE-A382-4876-B8F1-5854D1DE3CAB
cluster.hosts=192.168.94.137,192.168.94.138
# 设置集群节点,取IP最后一位
cluster.host.index=138
# 启用集群
cluster.enabled=true
5、(非必须)最后访问主节点,将注册表同步到从节点:
rsync -av --progress /root/.config/seeyoninstall_A8.info root@192.168.94.138:/root/.config/
rsync -av --progress /root/.config/seeyoninstall_Officetrans.info root@192.168.94.138:/root/.config/
rsync -av --progress /root/.config/seeyoninstall_S1.info root@192.168.94.138:/root/.config/
如集群环境是Windows Server系统, 操作方式如下:
1、将主节点协同程序目录1比1复制到从节点相同磁盘相同目录。
2、修改SeeyonConfig,将其调整成从节点,配置方式与Linux一致。
3、(非必须)拷贝主节点的注册表到从节点:Windows注册表位于HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\SEEYON
如集群环境是信创系统, 并且确认主从的协同程序路径、信创中间件路径完全一致,操作方式如下:
1、将主节点协同程序目录1比1复制到从节点相同磁盘相同目录。
2、将主节点中间件程序目录1比1复制到从节点相同磁盘相同目录(注意中间件的Lic授权咨询厂商)。
3、修改SeeyonConfig,将其调整成从节点,配置方式与Linux一致。注意:信创环境端口号无法通过SeeyonConfig自定义,端口号由中间件管理。
# 方案二:全新部署再切换为从节点
如客户从节点特殊,比如程序路径不一致,尤其是信创中间件程序目录不一致,则考虑通过全新部署再切换从节点的方式:
- 安装完成后,参考【配置共享目录】章节,将resources等资源路径调整为共享目录
- 参考【Redis配置】章节,将当前节点配置连接Redis
- 参考【主从同步】章节,将当前节点配置成从节点
- 从节点无需加密授权,以上完成后即可测试从节点
# 七、部署后全面验证
1、停止所有服务
2、启动数据库
3、启动Redis
4、先启动协同主节点
5、再启动协同从节点
6、启动Web负载均衡服务
7、以上完成后,浏览器访问Web负载均衡服务,检查是否能正常访问协同
# 集群环境运维管理
# 集群启动、重启
(一)如系统全面停止后,启动集群环境顺序如下:
1、停止所有服务
2、启动数据库
3、启动Redis
4、先启动协同主节点(启动方法与单机模式相同)
5、再启动协同从节点(启动方法与单机模式相同)
自V9.0SP1版本开始,只需要主节点开始启动,就可以运行从节点启动命令
6、启动Web负载均衡服务
(二)如系统仅仅是重启协同集群,启动集群环境顺序如下:
1、确保数据库、Redis、Web负载均衡服务处于启动状态
2、确保集群所有节点停止
3、先启动协同主节点(启动方法与单机模式相同)
所有节点都停止的情况下,启动主节点会对Redis进行一次flushall操作,以重置全部缓存
4、再启动协同从节点(启动方法与单机模式相同)
自V9.0SP1版本开始,只需要主节点开始启动,就可以运行从节点启动命令
(三)如集群某个节点停止,仅需要重新拉起停止的节点,操作要求如下:
1、找到停止的节点服务,仅启动停止的节点服务即可
集群环境如有服务器存活的情况下,拉起别的服务器,都不会对Redis进行重置
# 集群环境访问地址说明
集群环境下PC、移动端、微协同、第三方服务访问协同地址都要指向Web负载均衡服务上,由负载均衡服务分发请求。
# 集群环境HTTPS配置
集群环境下的HTTPS由前置Web负载均衡服务来管理,集群各协同节点不用做任何HTTPS配置
以Nginx为例,证书放置在Nginx上,只需要修改server{}代码块中的内容,将listen改成ssl,并且设置证书、ssl协议版本即可:
server {
listen 443 ssl;
ssl_certificate ssl/www.seeyon.com.crt;
ssl_certificate_key ssl/www.seeyon.com.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
charset utf-8;
其它配置...保留不变
}
更详细示例可以参照Nginx相关离线文档配置,或参考在线文档格式配置《Nginx反向代理协同配置(https)》 https://open.seeyoncloud.com/#/faq/vuepressFile/v1/share?url=Z2ptZkplPjM0NzM=
# 集群环境其它日常维护
集群环境下补丁打包与单机方法一致:每个节点都需要打包,建议全面停服后打包,再依次启动;
集群环境下修改端口、JVM调优、数据库连接等配置与单机方法一致:需要每个节点都做调整;
集群环境下SeeyonConfig系统参数配置与单机方法一致:每个节点都需要针对允许修改的部分做调整;
集群环境下查看、提取日志:需要每个节点都提取,日志位置相同;
集群环境下查看系统监控获取JVM、Thread Dump信息:通过Web负载均衡服务地址登录只能查看到一个节点,如需分析每个节点的信息,需要直接访问对应节点服务器IP端口。
# 集群环境系统升级
如客户集群环境涉及程序版本的升级,常规通路为:
1、集群协同各节点停止
2、升级主节点:通过安装升级程序对协同主节点进行升级(程序会升级、数据库数据也会升级),升级后先只启动主节点检查功能。操作方法复用单机部署升级手册即可。
3、升级从节点:可以复制主节点的程序再调整成从节点配置(目标是确保从节点程序升级到最新版本)。操作方法复用本手册“部署协同从节点”章节。
