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