历史版本39 :集群工程部署支持环境及配置 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

本文简单介绍,集群中各种组件的支持类型,和组件部署支持的服务器环境。

建议先确认需要安装的组件,然后按照各个组件的数量准备服务器。

2. 集群组件要求编辑

2.1 工程节点

集群节点是帆软集群的核心组成部分。它是一个可以独立运行的工程,负责处理用户的请求,处理生成报表的任务和管理其他组件的工作。集群节点间通过一系列的网络协议和服务进行通信和协作。

建议按照工程并发数,准备不同数量的工程节点,具体如下表所示:

注:一个服务器只能部署集群的一个工程节点,不支持在一台服务器部署集群的多个工程节点。

并发数
节点数每个节点内存配置
0~1001
JVM-8G
100~2001JVM-12G
200~3001JVM-16G
300~4002JVM-12G
400~5002JVM-16G
500~9003JVM-16G
900~12004JVM-32G

2.2 负载均衡

在帆软集群架构中,负载均衡器是连接用户和集群节点之间的组件,以确保用户请求能够合理分配到不同的集群节点上。

负载均衡器可以通过各种算法来分配用户请求到不同的节点上,以获得更好的性能和负载均衡效果。

帆软支持的一些负载均衡类型如下表所示:

注1:不支持 Apache 负载均衡。

负载均衡
简介
Nginx

简介:Nginx是一款高性能、高可靠性、开源的Web服务器和反向代理服务器

广泛应用于负载均衡、Web缓存、安全控制等领域

优点:

支持多种反向代理和负载均衡算法,高性能和高并发处理能力,配置简单,易于扩展

在 Linux 系统上具备很好的并发性能,并且占用极小的内存,稳定性和性能经过充分验证

缺点:

不同模块之间的整合不够完整,对于新手可能有一定的门槛

在 Windows 系统上,若并发需求超过 200,可能会出现并发问题

文档:

Linux 系统安装配置 Nginx

Windows系统安装配置Nginx

Traefik

简介:Traefik是一款现代化、动态负载均衡工具,主要用于Windows系统

优点:

无需安装,只要在命令行里执行即可,部署和使用非常简单

支持自动化更新反向代理和负载均衡配置

在 Windows 系统上具备良好的性能

缺点:部分功能需要高级版本,升级版本不够稳定

文档:windows系统安装配置Traefik

AWS ELB

简介:AWS ELB是亚马逊云计算服务中提供的一种负载均衡服务,包括经典负载均衡、应用程序负载均衡和网络负载均衡三种类型,可以实现不同协议的负载均衡

优点:可用性和可靠性,支持多种协议,可快速部署,方便维护

缺点:费用较高,配置和权限管理较为复杂

F5

简介:F5是一家网络应用服务公司,推出的产品包括负载均衡、应用安全等

优点:高可用性和可靠性,支持多种应用场景和应用类型,提供高级应用安全解决方案

缺点:价格较高,配置较为繁琐,需要一定的技术支持

2.3 外接数据库

数据决策系统中除平台属性配置以外的所有信息,包括目录树设置、模板定时任务信息等,均存储于一个数据库中。

它管理和存储了集群节点的各种配置信息,以保证各个节点的配置一致性,并方便管理员集中管理集群的元数据。

外接数据库支持的类型及版本如下表所示:

数据库类型支持数据库版本配置方法
RDS MySQL-配置MySQL5外接数据库
MySQL5.1.73、5.5.31、5.5.46、5.5.56、5.6.22、5.6.31、5.7.16

8.0.11,8.0.16,8.0.20

配置MySQL8外接数据库
Oracle10g、11g、12c配置Oracle外接数据库
SQL Server2000、2005、2008、2012、2014、2016配置SQL Server外接数据库
2017
DB29.7、8.2、11.1配置DB2外接数据库
PostgreSQL9.4.7、9.5.0、9.5.2、9.6.0配置PostgreSQL外接数据库

2.4 状态服务器

状态服务器是一个服务组件,用于存储集群节点的状态信息,如节点的运行状态、负载、任务处理情况等。

它可以辅助动态分配任务到合适的节点上,并帮助管理员进行实时监控和调度集群状态。

帆软集群方案中支持的状态服务器方案有:Redis单机、Redis集群、Redis哨兵、腾讯云Redis集群4.0

状态服务器
说明
Redis单机

简介:

Redis单机模式是Redis最简单的部署方式,只部署一个 Redis 应用

使用起来也最为简单,只有主机、端口、密码三个配置项

优点:易于配置和管理,无需考虑数据的分片和集群等问题,运维成本低

缺点:容易出现单点故障,容量受到单台服务器的限制,不能实现高可用性和负载均衡。

文档:Linux 系统安装配置单机 Redis

Redis集群

简介:Redis集群是一种基于分片的Redis部署方式,它将数据分散到多个节点中,从而可以实现横向扩展和高可用性。一般是6个Redis节点,组成三主三从的模式提供服务

优点:
主节点宕机后,基于投票机制从节点可自动上升为主节点,可让 Redis 服务更加高可用
数据分区存储在不同的主节点上,可以大幅度提升 Redis 服务的性能支撑
缺点:
由于数据分区存储,所以当一个主节点及其对应的从节点全部宕机后,整个 Redis 集群将不能使用
当存活的主节点数小于总节点数的一半时,整个 Redis 集群也会无法提供服务
Redis 集群对资源的要求比较多,运维成本也会更高
文档:linux系统安装配置Redis集群

Redis哨兵

简介:Redis哨兵是一种集中式的Redis高可用性解决方案,它会自动监测Redis节点状态,当某个节点失效时,自动进行故障转移。主要由一个主节点多个从节点和多个哨兵组成,一般就是一主二从三哨兵

优点:

提供较好的高可用性,对于Redis单机和Redis集群都适用

Redis哨兵只有一个主节点,当主节点宕机时,哨兵会选举一个从节点上升为主节点

缺点:

需要占用一定的系统资源,需要定期检查Redis的状态,不能实现水平扩展

Redis哨兵读写性能没有Redis集群好,因为Redis集群有多个主节点可以读写,所以不支持高并发

文档:Redis 哨兵模式插件

腾讯云Redis集群4.0简介:部分用户在部署过程中,使用的 Redis 为腾讯云,帆软提供腾讯云 Redis 插件,方便用户在部署集群时进行适配,该插件只支持腾讯云数据库 Redis4.0 集群版。

文档:腾讯云 Redis 插件

2.5 文件服务器

文件服务器是集群中存储报表数据和附件的组件,它可以集中管理和共享集群节点之间的文件,确保文件数据的一致性和高可用性。

由于各个节点都是从同一个文件服务器读取资源文件,不涉及到同步,各个节点读取的资源文件永远会保持一致性。

帆软支持多种文件服务器,下面会对各个类型的文件服务器优缺点进行说明。

类型优点
FTP

简介:FTP是一种文件传输协议,可以通过FTP服务器实现文件上传、下载和管理等功能

优点:稳定性高,性能好,读写速度高

缺点:非高可用方案,宕机后会影响整个服务的使用

文档:

Linux 系统安装配置 FTP

Windows系统配置FTP服务

SFTP

简介:SFTP是一种通过SSH协议进行加密的文件传输协议,

优点:部署简单,是Linux系统自带的,相对于FTP而言更加安全和稳定

缺点:

非高可用方案,宕机后会影响整个服务的使用

由于 SFTP 的传输方式使用了加密/解密技术,所以传输效率比普通的 FTP 要低得多

文档:Linux 系统配置使用 SFTP

HDFS

简介:HDFS是Hadoop分布式文件系统的缩写,是基于分布式存储架构的文件系统,可以存储大规模的数据文件,并支持大数据分析和挖掘等操作

优点:高可用方案,分布式文件系统,具备高度容错性

缺点:部署难度大,运维成本高,建议已经有HDFS服务的公司选用此方案

文档:HDFS 资源仓库

MinIO

简介:MinIO是一个轻量级的开源对象存储服务器,可以运行在任何环境中,并且支持各种云存储API

优点:MinIO具有易于部署和管理、高性能和低成本等优点

缺点:在工程化方面还存在一些不足

文档:MinIO资源仓库

S3

简介:使用支持 S3 协议的云存储文件系统作为文件服务器,包括阿里云 OSS 、华为云 OBS 、亚马云 S3

优点:云存储,高可用方案,具备高度容错性,已有此类存储的客户对接很方便

缺点:

只支持部分S3,自建的S3不一定支持

备份还原类场景可能存在卡顿

文档:S3资源仓库

共享外部目录

简介:共享外部存储是一种将外部存储器与服务器挂载的方式,可以实现共享文件夹和网络共享等功能

优点:

硬件存储(NAS):稳定性高,存储空间一般都比较大

软件存储(NFS):部署简单,方案成熟

缺点:

硬件存储(NAS):成本高,且非完全的高可用,宕机后也会影响服务

软件存储(NFS):非高可用,服务端宕机后,客户端就无法再提供服务

文档:共享外部目录

2. 服务器配置要求编辑

2.1 服务器数量

注:若有条件,建议 Nginx、Redis、FTP分别部署在不同的服务器上。

1)两节点集群
应用服务器1Web 容器(Tomcat、WebLogic、WAS)
应用服务器2Web 容器(Tomcat、WebLogic、WAS)
组件服务器3负载均衡(Nginx)
状态服务器(Redis)
文件服务器(FTP)
2)三节点集群
应用服务器1Web 容器(Tomcat、WebLogic、WAS)
应用服务器2Web 容器(Tomcat、WebLogic、WAS)
应用服务器3Web 容器(Tomcat、WebLogic、WAS)
组件服务器4负载均衡(Nginx)
状态服务器(Redis)
文件服务器(FTP)

2.2 操作系统

帆软集群方案对于 Windows 系统和 Linux 系统均能支持。支持的操作系统版本如下表所示:

类别

操作系统

已验证版本号

LinuxCentos6  Centos 6.5、Centos 6.6、Centos 6.7、Centos 6.8、Centos 6.9
Centos7

Centos 7.0、Centos 7.1、Centos 7.2、Centos 7.3、Centos 7.4

Centos 7.6、Centos 7.8、Centos 7.9

RedHat6RedHat 6.5、RedHat 6.6、RedHat 6.7、RedHat 6.8、RedHat 6.9
RedHat7

RedHat 7.0、RedHat 7.1、RedHat 7.2、RedHat 7.3、RedHat 7.4

RedHat 7.7

UbuntuUbuntu 10.04.4、Ubuntu18.04、Ubuntu 20
Amazon LinuxAmazon Linux AMI release 2018.03
windowsWindows Server

Windows Server 2008、Windows Server 2012

Windows Server 2016

2.3 内存配置

服务器系统内存
分配给 Web 容器 JVM 内存
应用服务器
建议 16G 以上建议 8G 以上,不要超过 32G,过大会导致系统 FullGC 时间过长
组件服务器建议 8G 以上/

2.4 磁盘空间

部署集群工程要求各机器的根目录空余空间至少 40G 以上,如果模板资源文件超大,根据实际情况选择较大磁盘空间的服务器。

机器作用硬件配置说明
应用服务器1部署工程/(根目录)保证至少有 40G 空余可用空间系统使用中的临时缓存地址
应用服务器2
/usr部署工程,至少保证有 15G 空余可用空间默认日志存放路径
组件服务器3
部署集群组件/(根目录) 保证至少有 40G 空余可用空间系统使用中的临时缓存地址
/usr保证至少有 15G 空余可用空间
安装集群的各个组件,存放日志文件
/home保证至少有 10G 空余可用空间
文件服务器存储目录,存放模板等资源文件

2.5 网络要求

1)公网环境和内网环境均可部署集群,不过要求集群的服务器间具有良好的通信环境,如下:

类型带宽网段备注
公网10M 以上同网段/
内网无要求同网段内网一般都是百兆/千兆带宽,故对带宽不做要求
2)需确认工程彼此之间以及各自到外接数据库之间的通讯正常:

  • Linux 系统用户:可使用 集群环境检测工具 对系统环境进行自动检测,或者使用 ping 语句检测。

  • Windows 系统用户:使用 ping 或者 telenet 语句进行检测。

2.6 Web容器

Web 容器是一种服务程序,是能够支持发布 Web 程序的软件,在服务器一个端口就有一个提供相应服务的程序,而这个程序就是处理从客户端发出的请求。

常规推荐:Tomcat 容器、WebLogic 容器、WebSphere 容器。

2.7 JDK

JDK 版本要求:JDK 1.8 且小版本需在 JDK8u102 以上。

3. 部署集群组件要求编辑

3.1 ROOT权限

Linux系统安装FTP时需要使用最高用户(root),否则不能进行,若不安装FTP则可不考虑这一要求。

3.2 GCC 编译器

Redis 和 Nginx 在 Linux 系统上的部署均依赖 GCC 编译器,所以须注意,若选用 Linux 服务器,请保证系统具备 GCC 编译环境

查询命令:gcc -v,若没有 gcc 环境则需要自行安装,联网安装命令:yum install gcc gcc-c++

3.3 端口准备

分类内容端口备注
负载均衡Nginx80 或 443外部端口,必须对外开放,可修改(nginx.conf),是集群系统入口端口,其他负载均衡的端口请自行配置
web容器Tomcat8080外部端口,可不对外开放,可修改(server.xml),SSL、短地址等在负载均衡层面配置
WebLoigc7001
WebSphere9080
消息通知Websocket 端口38888/39888详情请参见:集群配置WebSocket端口
Websocket 转发端口38889
文件服务器FTP20、21内部端口,可修改(自行操作)
SFTP22内部端口,不可修改
HDFS
9000内部端口,可修改(自行操作)
状态服务器redis 单机7379内部端口,可修改(redis.conf)
redis 集群/内部端口,根据配置情况自行修改(redis.conf)

说明:

1)Web 容器、文件服务器、状态服务器包含多种,请根据选择的情况自行开放端口。

2)如果默认端口与其他工程有冲突,需要先修改端口,再开放对应的端口。

3)开启 21 端口和任何大于1024 的端口,再通过 passive 开启 ftp 被动模式。

4)对于 docker 容器,或者服务器之间端口严格限制的环境,需要对节点的服务器之间开放端口,用于节点间通信。

  • 选择 TCP 协议是 7800/7810/7820/7830/7840/7850/7860/7870 八个端口

  • 选择 UDP 协议是 45588~65536 随机端口

4. 集群其他配置要求编辑

4.1 缓存模式

增加了缓存模式,前端可进行选择,缓存和文件服务器搭配使用时可以增加文件服务器的高可用性,下面介绍一下如何选择。

1)缓存功能

缓存的资源文件:包含报表文件、仪表板文件、配置文件、地图数据等,目前是"reportlets/" ,"resources/", "assets/","dashboards"四个文件夹。

主动缓存:启动工程时会缓存所有资源文件,后续使用和被动缓存基本一致。

被动缓存:仅对访问到的资源文件进行缓存。

2)缓存作用

优点:

  • 提高文件服务器的高可用性,若使用文件服务器时开启了缓存,当文件服务器宕机时,系统从缓存中读取资源文件,仍可正常对外提供服务。

  • 缓存避免了频繁的文件读写,速度更快,可大幅提高模板的访问性能。

缺点:

  • 缓存会占用系统内存和硬盘资源。

  • 因为集群分裂等不稳定的情况,缓存偶尔也会存在不同步的情况,此时可通过界面手动刷新缓存进行同步

总结一下,开启缓存功能可以大幅提高工程的性能,并且配合文件服务器使用时,可提高系统的高可用性,建议使用文件服务器时考虑开启缓存。

4.2 通信协议

帆软集群支持 TCP 和 UDP 两种通信协议,目前默认是 TCP 协议,下面列举两种协议的区别:


TCP  UDP  
连接  基于连接无连接
对系统资源的要求较多较少
程序结构复杂简单
数据正确性保证不保证
数据顺序性保证不保证
应用场景
网络负担重,对响应速度要求高 
socketsocket(PF_INET,SOCK_STREAM,0)socket(PF_INET,SOCK_DGRAM,0)
数据收发send/recvsendto/recvfrom
地址信息确定在 connect/accept 时确定在 sendto/recvfrom 函数中每次均需指定地址信息

其中需要注意的是,大部分云服务器(阿里云、亚马逊云等)都不支持UDP协议,因此只能选择TCP协议。

若服务器对TCP/UDP协议均支持,当节点数较少时选择TCP/UDP协议差异不大, 当节点数较多时,建议选择UDP协议,通信效率更高。