1. 概述编辑
为了满足企业高可用和高并发的业务需求,帆软支持单机和集群部署方式。
并可以根据具体的业务负载情况,推荐对应的部署架构,以保证业务的正常稳定运行。
本文根据用户并发数和服务器资源,推荐不同的最佳部署方案。
用户维度说明:
注册用户数:系统注册了的用户。
在线用户数:用户同时在一定时间段的在线数量(一般注册人数的 5% - 20% 之间)。
并发用户数:同时向服务器发送请求的用户数(一般是在线人数的 10% - 25% 左右)。
部署方案说明:
1)本文所列出的部署方案,均为工程和组件独占服务器时的配置要求(即该服务器中不再安装其他内容)。
帆软单机架构为「工程节点+配置库(外接finedb)」
帆软集群架构为「工程节点+负载均衡+状态服务器+文件服务器+配置库(外接finedb)」,架构中各个应用组件,需要针对不同场景进行选择和搭配。
在实际部署时,可任意选择技术路线支持范围内的软硬件环境。
2)考虑到部分用户的服务器资源紧张。
对于每种部署方案,本文分别提供推荐配置和最低配置要求。如资源充足,使用推荐配置;如资源紧张,必须至少满足最低配置。
对于集群部署方案,本文分别提供高可用和非高可用部署方案。如资源充足,推荐使用高可用部署方案;如资源紧张,可考虑非高可用部署方案。
3)单机工程,无法避免会出现小概率故障时的不可用情况,如需保障高可用建议优先选择集群架构部署。
系统性能说明:
1)工程节点数:
集群场景下,随着节点数增加,系统能处理的并发数也增加,模板的平均响应时间相近。
双节点集群的并发数为单机的两倍、三节点集群的并发数为单机的三倍。
2)模板性能:
单机场景下,JVM 内存增加,模板的响应时间减少。
集群场景下,各个节点的并发数相近时,模板的平均响应时间相近。
平台鉴权预览的方式比不走平台鉴权预览的方式性能差,因为不同用户之间不能共享同一结果缓存。
2. 单机:0~300并发用户编辑
适用对象:
系统注册用户:0~10000
系统在线用户:0~1500
系统并发用户:0~300
适合部署方案:
单机工程
1)部署架构
应用服务器:1节点
finedb配置数据库:MySQL
注:此配置为单机配置,系统可用稳定可得到保证,但由于非集群架构,无法避免会出现小概率故障时的不可用情况,如需保障高可用建议选择集群架构部署。
2)配置参数
配置项 | 推荐配置 | 最低配置 |
---|---|---|
应用服务器(部署fr/bi) | ||
服务器数量 | 1 | |
工程节点数量 | 1 | |
操作系统 | Linux 服务器 系统版本:CentOS 7.3 / Ubuntu 18.04.4 及以上 系统内核:3.10 及以上 系统架构:X86-64 | |
CPU | 2.5GHz以上 16核32线程 | 2.4GHz以上 8核16线程 |
JVM/物理内存 | 16g/32g | 8g/16g |
可用磁盘空间 | 500G以上 其中根目录可用磁盘不可小于40G | 500G以上 其中根目录可用磁盘不可小于40G |
中间件 | Tomcat8最新版本 Oracle OpenJDK 1.8最新版本 | Tomcat8.5.57 及以上版本 Oracle OpenJDK 1.8,JDK8u102 以上 |
配置数据库服务器(finedb) | ||
数据库数量 | 1 配置数据库尽量和应用工程在同一网段,避免网络波动等问题 | |
数据库类型 | MySQL5 数据库 数据库版本:5.5.31、5.5.46、5.5.56、5.6.22、5.6.31、5.7.16 版本 数据库驱动:5.1.37 版本 数据库字符集:utf8 数据库排序规则:utf8_bin 数据库名称:只允许包含数字、字母、下划线和「.」 数据库权限:create、delete、alter、update、select、insert、index | |
CPU | 2.5GHz以上 8核16线程 | 2.4GHz以上 4核8线程 |
JVM/物理内存 | 2g/4g | 1g/2g |
可用磁盘空间 | 200G以上 | 200G以上 |
网速 | 100Mbps | 50Mbps |
磁盘读写速度 | 100MB/s | 50MB/s |
3. 集群:300~1200并发用户编辑
适合部署方案:
集群工程
3.1 集群工程节点
配置项 | 推荐配置 | 最低配置 |
---|---|---|
适用对象: 系统注册用户:6000~12000 系统在线用户:1200~2500 系统并发用户:300~500 | ||
服务器数量 | 2 | 1 |
工程节点数量 | 2 | 1 |
操作系统 | Linux 服务器 系统版本:CentOS 7.3 / Ubuntu 18.04.4 及以上 系统内核:3.10 及以上 系统架构:X86-64 可使用 集群环境检测工具 检查下系统环境是否符合集群部署的要求 | |
CPU | 2.5GHz以上 16核32线程 | 2.4GHz以上 8核16线程 |
JVM/物理内存 | 24g/32g | 16g/32g |
可用磁盘空间 | 500G以上 其中根目录可用磁盘不可小于40G | 500G以上 其中根目录可用磁盘不可小于40G |
中间件 | Tomcat8最新版本 Oracle OpenJDK 1.8最新版本 | Tomcat8.5.57 及以上版本 Oracle OpenJDK 1.8,JDK8u102 以上 |
适用对象: 系统注册用户:8000~20000 系统在线用户:1600~4000 系统并发用户:500~800 | ||
服务器数量 | 2 | |
工程节点数量 | 2 | |
操作系统 | Linux 服务器 系统版本:CentOS 7.3 / Ubuntu 18.04.4 及以上 系统内核:3.10 及以上 系统架构:X86-64 | |
CPU | 2.5GHz以上 16核32线程 | 2.4GHz以上 8核16线程 |
JVM/物理内存 | 24g/32g | 16g/32g |
可用磁盘空间 | 500G以上 其中根目录可用磁盘不可小于40G | 500G以上 其中根目录可用磁盘不可小于40G |
中间件 | Tomcat8最新版本 Oracle OpenJDK 1.8最新版本 | Tomcat8.5.57 及以上版本 Oracle OpenJDK 1.8,JDK8u102 以上 |
适用对象: 系统注册用户:10000~25000 系统在线用户:2000~5000 系统并发用户:800~1000 | ||
服务器数量 | 3 | 2 |
工程节点数量 | 3 | 2 |
操作系统 | Linux 服务器 系统版本:CentOS 7.3 / Ubuntu 18.04.4 及以上 系统内核:3.10 及以上 系统架构:X86-64 | |
CPU | 2.5GHz以上 16核32线程 | 2.4GHz以上 8核16线程 |
JVM/物理内存 | 24g/32g | 24g/32g |
可用磁盘空间 | 500G以上 其中根目录可用磁盘不可小于40G | 500G以上 其中根目录可用磁盘不可小于40G |
中间件 | Tomcat8最新版本 Oracle OpenJDK 1.8最新版本 | Tomcat8.5.57 及以上版本 Oracle OpenJDK 1.8,JDK8u102 以上 |
适用对象: 系统注册用户:12000~30000 系统在线用户:2400~6000 系统并发用户:1000~1200 | ||
服务器数量 | 3 | 3 |
工程节点数量 | 3 | 3 |
操作系统 | Linux 服务器 系统版本:CentOS 7.3 / Ubuntu 18.04.4 及以上 系统内核:3.10 及以上 系统架构:X86-64 | |
CPU | 2.5GHz以上 16核32线程 | 2.4GHz以上 8核16线程 |
JVM/物理内存 | 24g/32g | 16g/32g |
可用磁盘空间 | 500G以上 其中根目录可用磁盘不可小于40G | 500G以上 其中根目录可用磁盘不可小于40G |
中间件 | Tomcat8最新版本 Oracle OpenJDK 1.8最新版本 | Tomcat8.5.57 及以上版本 Oracle OpenJDK 1.8,JDK8u102 以上 |
3.2 高可用集群组件方案
1)部署架构
应用服务器:不少于2节点
状态服务器:Redis集群,3主3从
文件服务器:NAS
负载均衡:Keepalived+Nginx
配置数据库:PostgreSQL
2)配置参数
帆软集群架构为「工程节点+负载均衡+状态服务器+文件服务器+配置库(外接finedb)」
本节介绍,除工程节点以外,高可用集群的推荐配置方案。(工程节点要求请参考3.1节)。
配置项 | 推荐配置 | 最低配置 |
---|---|---|
共用要求 本节列出的要求,是每一种集群组件和工程节点都必须满足的要求。 | ||
服务器数量 | 如有条件,建议负载均衡、状态服务器、文件服务器、外接配置库组件分别部署在不同的服务器上 如条件不足,至少确保有单独的服务器部署这些组件。 | |
服务器要求 | Linux 服务器 系统版本:CentOS 7.3 / Ubuntu 18.04.4 及以上 系统内核:3.10 及以上 系统架构:X86-64 可使用 集群环境检测工具 检查下系统环境是否符合集群部署的要求 | |
GCC编译器 | Redis 和 Nginx 在 Linux 系统上的部署均依赖 GCC 编译器 请保证系统具备 GCC 编译环境 查询命令:gcc -v 安装命令:yum install gcc gcc-c++ | |
网络要求 | 1)各个组件和应用工程建议在同一网段,避免网络波动等问题 2)各个组件和应用工程如处于公网环境,带宽需在10M以上 3)各个组件和应用工程之间需要网络畅通,互相端口可访问 | |
状态服务器 | ||
服务器数量 | 6 | 3 |
部署方案 | redis集群,三主三从 每台服务器部署一个节点 | redis集群,三主三从 每台服务器部署一主一从节点 |
JVM/物理内存 | 4g/8g | 4g/8g |
CPU | 2.5GHz以上 6核16线程 | 2.4GHz以上 8核16线程 |
可用磁盘空间 | 100G以上 其中根目录可用磁盘不可小于40G | 100G以上 其中根目录可用磁盘不可小于40G |
文件服务器 | ||
服务器数量 | 1 | |
部署方案 | NAS | 云厂商S3/MinIO集群/HA HDFS |
物理内存 | 8G | 8G |
CPU | 2.5GHz以上 8核16线程 | 2.4GHz以上 8核16线程 |
可用磁盘空间 | 500G~1T 其中根目录可用磁盘不可小于40G 后续请根据使用情况扩展 | 500G~1T 其中根目录可用磁盘不可小于40G 后续请根据使用情况扩展 |
负载均衡 | ||
服务器数量 | 2 | |
部署方案 | Keepalived+Nginx Nginx版本推荐1.15.6 | |
物理内存 | 8G | |
CPU | 2.5GHz以上 8核16线程 | |
可用磁盘空间 | 100G以上 其中根目录可用磁盘不可小于40G | |
配置数据库服务器(finedb) | ||
服务器数量 | 2 | |
数据库类型 | PostgreSQL 数据库,主备模式 数据库版本:9.4.7、9.5.0、9.5.2、9.6.0、13.0 版本 数据库名称:只允许包含数字、字母、下划线和「.」 数据库权限:create、delete、alter、update、select、insert、index | |
CPU | 2.5GHz以上 8核16线程 | 2.4GHz以上 4核8线程 |
JVM/物理内存 | 2g/4g | 1g/2g |
可用磁盘空间 | 500G以上 | 500G以上 |
网速 | 100Mbps | 50Mbps |
磁盘读写速度 | 100MB/s | 50MB/s |
3.3 标准集群组件方案
1)部署架构
应用服务器:不少于2节点
状态服务器:Redis单机
文件服务器:SFTP
负载均衡:Nginx
配置数据库:MySQL
2)配置参数
帆软集群架构为「工程节点+负载均衡+状态服务器+文件服务器+配置库(外接finedb)」
本节介绍,除工程节点以外,标准集群的推荐配置方案。(工程节点要求请参考3.1节)。
配置项 | 推荐配置 | 最低配置 |
---|---|---|
共用要求 本节列出的要求,是每一种集群组件和工程节点都必须满足的要求。 | ||
服务器数量 | 如有条件,建议负载均衡、状态服务器、文件服务器、外接配置库组件分别部署在不同的服务器上。 如条件不足,至少确保有单独的服务器部署这些组件。 | |
服务器要求 | Linux 服务器 系统版本:CentOS 7.3 / Ubuntu 18.04.4 及以上 系统内核:3.10 及以上 系统架构:X86-64 可使用 集群环境检测工具 检查下系统环境是否符合集群部署的要求 | |
GCC编译器 | Redis 和 Nginx 在 Linux 系统上的部署均依赖 GCC 编译器 请保证系统具备 GCC 编译环境 查询命令:gcc -v 安装命令:yum install gcc gcc-c++ | |
网络要求 | 1)各个组件和应用工程建议在同一网段,避免网络波动等问题 2)各个组件和应用工程如处于公网环境,带宽需在10M以上 3)各个组件和应用工程之间需要网络畅通,互相端口可访问 | |
状态服务器 | ||
服务器数量 | 1 | |
部署方案 | redis单机 | |
JVM/物理内存 | 4g/8g | |
CPU | 2.5GHz以上 8核16线程 | |
可用磁盘空间 | 100G以上 其中根目录可用磁盘不可小于40G | |
文件服务器 | ||
服务器数量 | 1 | |
部署方案 | SFTP | MinIO单机/NFS/FTP/HDFS |
物理内存 | 8G | |
CPU | 2.5GHz以上 8核16线程 | |
可用磁盘空间 | 500G以上 其中根目录可用磁盘不可小于40G | |
注意事项 | Linux系统安装FTP时需要使用最高用户(root),否则不能进行,若不安装FTP则可不考虑这一要求 | |
负载均衡 | ||
服务器数量 | 1 | |
部署方案 | Nginx 版本推荐1.15.6 | F5/SLB |
物理内存 | 8G | |
CPU | 2.5GHz以上 8核16线程 | |
可用磁盘空间 | 100G以上 其中根目录可用磁盘不可小于40G | |
配置数据库服务器(finedb) | ||
服务器数量 | 1 | |
数据库类型 | MySQL5 数据库 数据库版本:5.5.31、5.5.46、5.5.56、5.6.22、5.6.31、5.7.16 版本 数据库驱动:5.1.37 版本 数据库字符集:utf8 数据库排序规则:utf8_bin 数据库名称:只允许包含数字、字母、下划线和「.」 数据库权限:create、delete、alter、update、select、insert、index | |
CPU | 2.5GHz以上 8核16线程 | 2.4GHz以上 4核8线程 |
JVM/物理内存 | 2g/4g | 1g/2g |
可用磁盘空间 | 300G以上 | 300G以上 |
网速 | 100Mbps | 50Mbps |
磁盘读写速度 | 100MB/s | 50MB/s |