1. 概述
帆软集群架构简单概述就是「负载均衡+状态服务器+文件服务器/节点间同步+外置数据库」,架构很明了,不过架构中各个应用组件,我们需要针对不同场景进行选择和搭配。
本文将介绍如何选择集群方案,为 IT 人员规划设计集群方案时提供一些有效的指引。
注:本文提供方案仅适用于纯直连架构的 FineBI 。
2. 集群方案
2.1 集群架构
目前支持的具体架构如下表所示:
环境 | 应用架构 | 容器 | 外接数据库 | 负载均衡 | 状态服务器 | 文件服务器 |
---|---|---|---|---|---|---|
Linux Windows | Servlet | Tomcat WebLogic WebSphere | MySQL SQLServer Oracle DB2 |
| Redis+(集群/单机) | FTP SFTP HDFS |
需要注意以下几点:
不建议使用 Nginx-1.14.1 之前的版本,推荐使用 Nginx-1.15.6 。
Nginx 不建议在 Windows 系统中安装使用,建议 Traefik 在 Windows 系统中安装使用。详情请参见:集群方案介绍 3.2 节内容。
NFS 方案在 Windows 下存在中文乱码问题,推荐使用 Linux 搭建。
2.2 集群配置推荐
如下表所示:
类别 | 普通方案 | 高可用方案 | 说明 |
---|---|---|---|
外置数据库 | 单机数据库 | 主备模式 | 数据库的 max_connections、pool_size 等配置容易影响并发限制,可进行调优 |
负载均衡 | 推荐使用 Nginx | Nginx+keepalived | 每个 Nginx 应用内存 1G 即可(正常情况下 5W 并发仅需 15M ),存储空间不作要求 |
状态服务器 | Redis单机 | Redis集群 | 每个 Redis 应用内存 4G 即可 |
文件服务器 | FTP/SFTP | HDFS/NAS/OSS | 文件服务器容易影响并发性能,可以进行调优 如 FTP ,如果多节点频繁读写模板就会导致阻塞和卡顿,可以进行配置或提升磁盘性能 |
节点 | 并发数:同一时间向服务器发送编辑/查看请求的用户数量,节点具体配置请参见下方表格 | 1)jvm 内存不超过 32G 2)节点内存,建议至少是 jvm 内存的1.25 倍 |
节点具体配置如下表所示:
并发数 | 节点数 | 节点内存配置 |
---|---|---|
0~100 | 1 | JVM-8G |
100~200 | 1 | JVM-12G |
200~300 | 1 | JVM-16G |
300~400 | 2 | JVM-12G |
400~500 | 2 | JVM-16G |
500~900 | 3 | JVM-16G |
900~1200 | 4 | JVM-32G |
2.3 典型集群结构推荐
2.3.1 两节点的集群(入门级高可用)
环境 | Linux | CentOS 7 |
---|---|---|
应用架构 | servlet | |
容器 | Tomcat | Tomcat 8 |
外置数据库(配置数据库) | MySQL(单机) | MySQL 5 |
负载均衡 | Nginx(单机) | Nginx-1.15.6 |
状态服务器 | Redis(单机) | Redis 5/6 |
文件同步方式 | 节点间同步 | 不需要单独配置文件服务器 |
2.3.2 三节点集群(标准高可用)
环境 | Linux | CentOS 7 |
---|---|---|
应用架构 | servlet | |
容器 | Tomcat | Tomcat 8 |
外置数据库(配置数据库) | Oracle(集群) | Oracle 11g RAC |
负载均衡 | Nginx(热备) | Nginx + Keepalived |
状态服务器 | Redis(集群) | Redis 5/6(三主三从) |
文件同步方式 | HDFS | Hadoop 3.0 |
2.3.3 Windows集群
环境 | Windows | Windows Server 2008 |
---|---|---|
应用架构 | servlet | |
容器 | WebLogic | WebLogic 12.2.1.3.0 |
外置数据库(配置数据库) | SQL Server(单机) | SQL Server 2008 |
负载均衡 | Traefik(单机) | Traefik 2.0 |
状态服务器 | Redis(单机) | Redis 5/6 |
文件同步方式 | 节点间同步 | 不需要单独配置文件服务器 |
2.3.4 其他说明
除此以外,还支持 K8S 集群介绍,实现应用编排,自动扩容。
云环境上,如 AWS 上的 ELB 、阿里云的 OSS 、腾讯云 Redis 等,通过云厂商的技术,实现集群环境的更高可用。
注:如果你对这两种方案感兴趣,请通过技术支持联系集群团队获取该功能,技术支持联系方式:「服务平台>在线支持」、电话「400-811-8890」。
3. 部署运维
流程如下图所示:
3.1 申请资源
每个组件都需要申请资源。
一个标准的高可用集群,每个组件需要部署在独立的服务器上,通过物理隔离,防止组件之间互相干扰。
服务器包括:
工程服务器(2个以上)
外置数据库所在服务器
负载均衡所在服务器
状态服务器
文件服务器
注:各个服务器的数量和配置与业务使用情况有关,需要帆软专业的性能测试,结合实际的网络环境、文件读写效率、数据库并发性能等因素,得出实际能够支持的并发大小,从而得出合理的建议。
防火墙:所有节点之前的网络必须是通的。
端口:请参见:端口准备
3.2 开始部署
1)使用 集群环境检测工具 检查下系统环境是否符合集群部署的要求。
2)每个服务器需要安装所需组件,可以使用自动化部署工具(只适合 Linux 系统)。
具体请参见:Linux 系统自动化部署集群
3)运行帆软工程,在配置页面配置所有组件,具体请参见:配置开启集群
4)在配置开启集群界面中,可配置「Redis存储key前缀参数」,设置该参数后,将不会与其他工程的 key 冲突。
5)重启工程,如果节点个数正常且没有标红,说明集群部署成功。如下图所示:
注:配置完成之后,可安装 系统可用性监测工具 ,当集群突然不可用时,会第一时间收到通知。
3.3 集群使用建议
修改模板尽量切换到远程目录进行修改,如果确实需要手动更改模板文件,需手动刷新下缓存。