1. 概述
为了满足企业高可用和高并发的业务需求,帆软支持单机和集群部署方式。
并可以根据具体的业务负载情况,推荐对应的部署架构,以保证业务的正常稳定运行。
本文根据用户并发数和服务器资源,推荐不同的最佳部署方案。
部署方案说明:
1)本文所列出的部署方案,均为工程和组件独占服务器时的配置要求(即该服务器中不再安装其他内容)。
帆软单机架构为「工程节点+配置库(外接finedb)」
帆软直连/抽取集群架构为「工程节点+负载均衡+状态服务器+文件服务器+配置库(外接finedb)」,架构中各个应用组件,需要针对不同场景进行选择和搭配。
在实际部署时,可任意选择技术路线支持范围内的软硬件环境。
2)考虑到部分用户的服务器资源紧张。
对于工程节点部署方案,本文分别提供推荐配置和最低配置要求。如资源充足,使用推荐配置;如资源紧张,必须至少满足最低配置。
对于集群部署方案,本文分别提供高可用和非高可用部署方案。如资源充足,推荐使用高可用部署方案;如资源紧张,可考虑非高可用部署方案。
3)单机工程,无法避免会出现小概率故障时的不可用情况,如需保障高可用建议优先选择集群架构部署。
系统性能说明:
1)工程节点数:
集群场景下,随着节点数增加,系统能处理的并发数也增加,模板的平均响应时间相近。
双节点集群的并发数为单机的两倍、三节点集群的并发数为单机的三倍。
2)模板性能:
单机场景下,JVM 内存增加,模板的响应时间减少。
集群场景下,各个节点的并发数相近时,模板的平均响应时间相近。
平台鉴权预览的方式比不走平台鉴权预览的方式性能差,因为不同用户之间不能共享同一结果缓存。
2. 工程服务器环境
2.1 服务器通用要求
配置项 | 推荐配置 | ||||||||
---|---|---|---|---|---|---|---|---|---|
服务器类型 | Linux 服务器 | ||||||||
系统版本 | Ubuntu 18.04.4 及以上 | ||||||||
系统内核 | 3.10 及以上 | ||||||||
系统架构 | X86_64 | ||||||||
可用磁盘空间 | 根据数据量设置每个节点所在服务器可用磁盘空间 其中根目录可用磁盘不可小于40G 数据量为0~500万行,可用磁盘控件
| ||||||||
中间件 | Tomcat8.5.57 及以上版本,推荐使用最新版本 JDK 1.8,8u221 以上,推荐使用最新版本 | ||||||||
磁盘类型 | SSD固态硬盘 FineBI 是 IO 密集型应用,对磁盘 IO 依赖较大,因此推荐使用本地磁盘或固态硬盘 | ||||||||
磁盘读写速度 | 100M/S以上 | ||||||||
IOPS吞吐量 | 10K以上 |
2.2 不同节点数配置要求
一个服务器只能部署集群的一个工程节点,因此需要几个工程节点就要准备几个服务器。
用户维度说明:
用户类型 | 说明 |
---|---|
日活用户数 | 一日之内,FineBI工程登录的用户数 |
在线用户数 | 同一时刻,FineBI工程上登录了的用户数 |
并发用户数 | 同一时刻,在FineBI工程上做操作的用户数 即多少用户同时对服务器发送请求,即服务器同时处理多少用户发送来的请求 |
lic注册时的并发限制 | 根据 IP 地址进行统计,服务器从请求中获取 IP 地址,作为一个并发key 主要限制访问系统的累计 IP 数。Lic 的该参数和下文用户数无关联 |
本文以三种场景进行配置推荐。若您的FineBI工程涉及多个场景,选择其中的最高配置作为推荐配置即可。
用户需要先参考 直连数据&抽数数据简介 判断自己使用的是「实时数据」还是「抽取数据」。
2.2.1 直连数据
场景说明:只使用直连数据,不使用抽取数据
集群节点间、节点与其他组件间带宽 1000Mb/s。
根据工程的并发及数据源 DB 的计算能力,落在多个配置区间时选较高的配置;
编辑并发对应缓存不命中;
并发用户数/秒的上限对应缓存命中,下限对应缓存不命中。
日活用户数 | 在线用户数 每小时 | 并发用户数 每秒 | 编辑 并发数 | 数据源计算能力 每秒处理的计算数 | 推荐配置 | 最低配置 |
---|---|---|---|---|---|---|
500 | <100 | <20 | <20 | <10 | 单机,节点满足: CPU:8 核 16 线程 2.5GHZ JVM 内存:16GB 物理内存:24G | 单机,节点满足: CPU:4 核 8 线程 2.5GHZ JVM 内存:8GB 物理内存:12G |
2K | 100~1K | 40~90 | 10~40 | 10~20 | 2节点集群,每个节点满足: CPU:16 核 32 线程 2.5GHZ JVM 内存:16GB 物理内存:32G | 单机,节点满足: CPU:16 核 32 线程 2.5GHZ JVM 内存:16GB 物理内存:24G |
3K | 600~1.5K | 60~130 | 30~60 | ≥30 | 3节点集群,每个节点满足: CPU:16 核 32 线程 2.5GHZ JVM 内存:16GB 物理内存:24G | 2节点集群,每个节点满足: CPU:16 核 32 线程 2.5GHZ JVM 内存:24GB 物理内存:48G |
4K | 600~2K | 60~170 | 60~80 | ≥30 | 4节点集群,每个节点满足: CPU:16 核 32 线程 2.5GHZ JVM 内存:16GB 物理内存:24G | 3节点集群,每个节点满足: CPU:16 核 32 线程 2.5GHZ JVM 内存:24GB 物理内存:48G |
2.2.2 抽取数据:高日活自助分析
场景说明:日活用户较高的FineBI工程,用户自助分析数据(对应 FineBI 查询不命中缓存)。
节点数概要估算并发:在线用户数 Y = 300 * (节点数 X-1) + 400 。
磁盘吞吐率和带宽要求大于 100MB/s(普通本地硬盘 HDD 性能),推荐 SSD固态硬盘。
JVM 内存≠整机内存,推荐 JVM 内存占整机内存的 2/3 ~ 3/4 。
在线用户数 每小时 | 并发用户数 每秒 | 编辑 并发数 | 表数量/表大小 | 推荐配置 | 最低配置 |
---|---|---|---|---|---|
<100 | <20 | <20 | <100张/<1T | 单机,节点满足: CPU:8 核 16 线程 2.5GHZ JVM 内存:16GB 物理内存:32G | 单机,节点满足: CPU:8 核 16 线程 2.5GHZ JVM 内存:16GB 物理内存:32G |
300~1K | 20~70 | 10~40 | <100张/<1T | 2节点集群,每个节点满足: CPU:8 核 16 线程 2.5GHZ JVM 内存:16GB 物理内存:32G | 单机,节点满足: CPU:16 核 32 线程 2.5GHZ JVM 内存:32GB 物理内存:64G |
600~2K | 40~120 | 30~60 | >2k张/>1T | 2节点集群,每个节点满足: CPU:16 核 32 线程 2.5GHZ JVM 内存:32GB 物理内存:64G | 2节点集群,每个节点满足: CPU:16 核 32 线程 2.5GHZ JVM 内存:24GB 物理内存:48G |
900~3K | 50~160 | 50~80 | >4k张/>2T | 3节点集群,每个节点满足: CPU:16 核 32 线程 2.5GHZ JVM 内存:32GB 物理内存:64G | 2节点集群,每个节点满足: CPU:16 核 32 线程 2.5GHZ JVM 内存:24GB 物理内存:48G |
1.2K~3.5K | 60~190 | 70~100 | >5k张/>3T | 4节点集群,每个节点满足: CPU:16 核 32 线程 2.5GHZ JVM 内存:32GB 物理内存:64G | 3节点集群,每个节点满足: CPU:16 核 32 线程 2.5GHZ JVM 内存:32GB 物理内存:64G |
1.5K~4K | 80~220 | 80~200 | >5k张/>3T | 5节点集群,每个节点满足: CPU:16 核 32 线程 2.5GHZ JVM 内存:32GB 物理内存:64G | 4节点集群,每个节点满足: CPU:16 核 32 线程 2.5GHZ JVM 内存:32GB 物理内存:64G |
2.2.3 抽取数据:并发查看仪表板
场景:对应用户并发查看报告等场景。即通常5-10分钟内累计访问用户数Y(对应FineBI查询缓存全命中,即多个相同计算请求引擎可以直接命中返回结果)。
节点数概要估算并发: 5分钟并发用户数 Y = 380*节点数X
每秒请求用户数达到160时,对负载均衡服务器的下载速度要求较高,需要达到100MB/s。
JVM 内存≠整机内存,推荐 JVM 内存占整机内存的 2/3 ~ 3/4 。
用户数 每5分钟 | 用户数 每秒 | 推荐配置 | 最低配置 |
---|---|---|---|
~400 | 40 | 2节点集群,每个节点满足: CPU:8 核 16 线程 2.5GHZ JVM 内存:16GB 物理内存:32G | 单机,节点满足: CPU:16 核 32 线程 2.5GHZ JVM 内存:32GB 物理内存:64G |
400~800 | 80 | 2节点集群,每个节点满足: CPU:16 核 32 线程 2.5GHZ JVM 内存:32GB 物理内存:64G | 2节点集群,每个节点满足: CPU:16 核 32 线程 2.5GHZ JVM 内存:24GB 物理内存:48G |
800~1.1K | 110 | 3节点集群,每个节点满足: CPU:16 核 32 线程 2.5GHZ JVM 内存:32GB 物理内存:64G | 3节点集群,每个节点满足: CPU:16 核 32 线程 2.5GHZ JVM 内存:24GB 物理内存:48G |
1.1K~1.6K | 160 | 4节点集群,每个节点满足: CPU:16 核 32 线程 2.5GHZ JVM 内存:32GB 物理内存:64G | 3节点集群,每个节点满足: CPU:16 核 32 线程 2.5GHZ JVM 内存:32GB 物理内存:64G |
1.6K~2K | 190 | 5节点集群,每个节点满足: CPU:16 核 32 线程 2.5GHZ JVM 内存:32GB 物理内存:64G | 4节点集群,每个节点满足: CPU:16 核 32 线程 2.5GHZ JVM 内存:32GB 物理内存:64G |
3. 其他组件服务器环境
3.1 单机
适用对象:
单机工程
应用服务器:1节点
finedb配置数据库:MySQL5
配置参数:
帆软单机架构为「工程节点+配置库(外接finedb)」
本节仅介绍单机其他组件的推荐配置,FineBI工程节点服务器相关配置要求请参考第二章。
配置项 | 推荐配置 |
---|---|
配置数据库服务器(finedb) | |
服务器数量 | 1 如有条件,建议外接配置库组件部署在独立服务器上 如条件不足,可将外接配置库组件与FineBI工程部署在同一服务器上 但至少确保该服务器为FineBI工程和数据库独占,不再部署其他应用 |
操作系统 | 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)」
本节仅介绍集群其他组件的推荐配置,FineBI工程节点服务器相关配置要求请参考第二章。
配置项 | 推荐配置 |
---|---|
共用要求 本节列出的要求,是每一种集群组件都必须满足的要求。 | |
服务器数量 | 如有条件,建议负载均衡、状态服务器、文件服务器、外接配置库组件分别部署在不同的独立服务器上 如条件不足,至少确保有单独的服务器部署这些组件,且组件独占该服务器,不可与FineBI工程部署在同一服务器上 |
操作系统 | 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)」
本节仅介绍集群其他组件的推荐配置,FineBI工程节点服务器相关配置要求请参考第二章。
配置项 | 推荐配置 |
---|---|
共用要求 本节列出的要求,是每一种集群组件都必须满足的要求。 | |
服务器数量 | 如有条件,建议负载均衡、状态服务器、文件服务器、外接配置库组件分别部署在不同的独立服务器上 如条件不足,至少确保有单独的服务器部署这些组件,且组件独占该服务器,不可与FineBI工程部署在同一服务器上 |
操作系统 | 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 |