建木HA部署
            
            
                作者:早春的树
                
                
                发布时间:2022-12-13 10:00:00
            
        
背景
在建木v2.6.1之前,建木Server仅支持单机部署,如果出现单机故障,难以应用于在线场景,并且单机压力过大时,会影响系统延展性。
什么是HA
HA(High Availability Cluster)是高可用集群系统的简称,是保证业务连续性的有效解决方案,是指以减少服务中断时间为目的的服务器集群技术。它可以保护业务程序对外提供不间断的服务,把因软件、硬件、人为造成的故障对业务的影响降到最小。
建木HA部署
本文只介绍建木HA部署,单机部署请查看 建木部署文档
- 资源准备
- 一台虚拟机部署Nginx及建木UI
 - 两台虚拟机部署建木Server
 - 两台虚拟机部署建木Worker
 - 一台虚拟机部署Redis
 - 一台虚拟机部署Mysql
 - 一台虚拟机部署共享存储,需挂载到部署建木Server的两台虚拟机上
 
 
注意:多个建木Server需配置同一台Mysql和Redis数据库
- 部署架构图
 

上图中,用Nginx实现多个建木Server的负载均衡,用户也可以使用其他中间件实现
- 建木UI配置
 
安装Nginx,构建建木UI并部署到Nginx,配置示例:
完整配置请查看nginx-http.conf
1  | # 如下为建木UI页面配置相关片段  | 
- 建木Server配置
 
建木实现了基于Redis的通信机制,多个Server之间可以通过Redis通信协作,配置示例:
1  | SPRING_REDIS_HOST: xxx.xxx.xxx.xxx  | 
配置quartz存储方式为jdbc:
quartz集群需要导入mysql文件
1  | SPRING.QUARTZ.JOB-STORE-TYPE: jdbc  | 
为防止并发,只需一台建木Server开启流程实例自动清理(默认开启),其他机器应关闭流程实例自动清理:
1  | # 表示关闭自动清理流程实例记录  | 
多Server部署时,需配置共享存储,并挂载共享目录:
1  | volumes:  | 
负载均衡,配置示例:
完整配置请查看nginx-http.conf
1  | # 如下为建木Server负载均衡配置相关片段  | 
- 建木Worker配置
 
Worker配置的建木地址需要设置为建木Server的统一访问入口,如上图为Nginx的ip:port
1  | JIANMU_SRV_ADDRESS: http://ip:port  | 
配置完成后,启动建木服务,建木HA就部署完成了!