反饋已提交
網絡繁忙
帆软集群架构简单概述就是「负载均衡+状态服务器+文件服务器/节点间同步+外置数据库」,架构很明了,不过架构中各个应用组件,我们需要针对不同场景进行选择和搭配。
本文将介绍如何选择集群方案,为 IT 人员规划设计集群方案时提供一些有效的指引。
目前支持的具体架构如下表所示:
Linux
Windows
Servlet
Tomcat
WebLogic
WebSphere
MySQL
SQLServer
Oracle
DB2
1)软件负载均衡:
Nginx+(keepalived)
Traefik
AWS ELB
2)硬件负载均衡:F5
Redis+(集群/哨兵/单机)
FTP
SFTP
HDFS
共享外部目录
NFS
NAS
外部磁盘
需要注意以下几点:
不建议使用 Nginx-1.14.1 之前的版本,推荐使用 Nginx-1.15.6 。
Windows 集群非常不建议使用 Nginx ,请务必使用 Traefik 。
NFS 方案存在中文乱码问题,不建议使用。
如下表所示:
每个 Nginx 应用内存 1G 即可(正常情况下 5W 并发仅需 15M ),存储空间不作要求
Redis单机
FTP/SFTP
HDFS/NAS/OSS
文件服务器容易影响并发性能,可以进行调优
如 FTP ,如果多节点频繁读写模板就会导致阻塞和卡顿,可以进行配置或提升磁盘性能
并发数:同一时间向服务器发送编辑/查看请求的用户数量,节点具体配置请参见下方表格
1)jvm 内存不超过 32G
2)节点内存,建议至少是 jvm 内存的1.25 倍
节点具体配置如下表所示:
1)方案说明:
工程:
两节点
文件服务器:
有两种方式:
方式一:节点间同步
方式二:部署两个 FTP 服务器(一个主服务器、一个备用服务器),在集群配置页面中填写两个服务器的地址。当主 FTP 服务器宕机时,帆软工程可以自动连接到备用 FTP 服务器,从而保障工程正常运行。
注:如果你对该方案感兴趣,请通过技术支持联系集群团队获取该功能,技术支持联系方式:QQ「800049425」、电话「400-811-8890」。
方式三:使用NAS硬件文件服务器作为高可用的选择
负载均衡:Nginx+Keepalived
数据库:
用户需自行配置高可用数据库。
若公司已有数据库服务,数据库版本符合帆软的要求(MySQL 、SqlServer、Oracle、DB2)则可直接使用,若需要新部署数据库服务,则建议部署 MySQL,部署比较简单。
状态服务器:
redis+keepalived 主从部署。
Redis 的高可用方案目前主要 5 种方式:
Redis Master-Slave + Keepalived + VIP
这是很经典的db架构,也可以用与mysql的主从切换。基本原理是:Keepalive通过脚本检测master的存活,然后通过漂移VIP(Virtual IP)完成主从切换。
Redis Master-Slave + DNS Service + Sentinel基本原理是Sentinel集群进行Redis的存活检测和Redis M-S状态切换。完成切换之后,sentinel调用notification-script参数制定的配置文件,通知DNS Server更改DNS配置,master dns解析执行新的master。
Redis Master-Slave + Configure Center(Zookeeper) + Sentinel.基本原理和第二种方案相似,只是notification-script通知的是配置中心完成redis连接配置的修改,比如Zookeeper实现的配置中心。
Redis Master-Slave + Sentinel + Twemproxy + Lvs.这种方案层次比较多,sentinel通知twemproxy进行redis m-s的配置更改。
Redis Cluster,redis3.0 发布了该功能
目前 Sentinel 和 Cluster 两种方案都明确支持,但这两种方案都需要至少三台服务器来部署搭建 Redis 相关服务。
目前有需求仅使用两台服务器来实现 Redis 的高可用,可采用 Redis Master-Slave + Keepalived + VIP 方案来支持。
2)服务器 A
一个工程节点
一个 Nginx+Keepalived
一个 FTP /节点间同步
一个 redis+Keepalived
一个外接数据库
3)服务器 B
4)服务器 C
不需要
1)方案说明
3 节点
负载均衡:
Nginx+Keepalived
redis 集群,3 主 3 从
一个 FTP
一个 redis 主节点+从节点
一个 redis主节点+从节点
一个Nginx+Keepalived
servlet
MySQL(单机)
Redis(单机)
Oracle(集群)
Redis(集群)
SQL Server(单机)
除此以外,还支持 K8S 集群介绍,实现应用编排,自动扩容。
云环境上,如 AWS 上的 ELB 、阿里云的 OSS 、腾讯云 Redis 等,通过云厂商的技术,实现集群环境的更高可用。
注:如果你对这两种方案感兴趣,请通过技术支持联系集群团队获取该功能,技术支持联系方式:QQ「800049425」、电话「400-811-8890」。
流程如下图所示:
每个组件都需要申请资源。
以本文 2.4.2 节为例,一个标准的高可用集群,每个组件需要部署在独立的服务器上,通过物理隔离,防止组件之间互相干扰。
服务器包括:
工程服务器(2个以上)
外置数据库所在服务器
负载均衡所在服务器
状态服务器
文件服务器
备注:各个服务器的数量和配置与业务使用情况有关,需要帆软专业的性能测试,结合实际的网络环境、文件读写效率、数据库并发性能等因素,得出实际能够支持的并发大小,从而得出合理的建议
防火墙:所有节点之前的网络必须是通的。
端口:请参见:端口准备
1)使用 集群环境检测工具 检查下系统环境是否符合集群部署的要求。
2)每个服务器需要安装所需组件,可以使用自动化部署工具(只适合 Linux 系统)。
具体请参见:Linux 系统自动化部署集群
3)运行帆软工程,在配置页面配置所有组件,具体请参见:配置开启集群
4)在配置开启集群界面中,可配置「Redis存储key前缀参数」,设置该参数后,将不会与其他工程的 key 冲突。
5)重启工程,如果节点个数正常且没有标红,说明集群部署成功。如下图所示:
注:配置完成之后,可安装 系统可用性监测工具 ,当集群突然不可用时,会第一时间收到通知。
修改模板尽量切换到远程目录进行修改,如果确实需要手动更改模板文件,需手动刷新下缓存。
文 檔回 饋
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉