1. 系统要求
已知负载均衡 Nginx 在 Windows Server 上不能支撑较高并发,所以对于使用 Nginx 作为负载均衡的方案,若并发需求低于 300,则在 Linux 系统和 Windows Server 上均能正常部署使用集群,若并发需求超过 300,则不建议在 Windows Server 上部署集群,否则会出现并发问题。
类别 | 操作系统 | 已验证版本号 |
---|---|---|
Linux | Centos6 | 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 | |
RedHat6 | RedHat 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 | |
Ubuntu10 | Ubuntu 10.04.4 | |
Amazon Linux | Amazon Linux AMI release 2018.03 | |
windows | Windows Server | Windows Server 2008、Windows Server 2012 |
1)JDK 版本要求:JDK 1.8 且小版本需在 JDK8u102 以上。
2)一套集群不支持一台服务器部署多个集群的节点工程。
3)需确认工程彼此之间以及各自到外接数据库之间的通讯正常:
Linux 系统用户:可使用 集群环境检测工具 对系统环境进行自动检测,或者使用 ping 语句检测。
Windows 系统用户:使用 ping 或者 telenet 语句进行检测。
2. ROOT权限
Linux 系统安装 FTP 时需要使用最高用户(root),否则不能进行,若不安装 FTP 则可不考虑这一要求。
3. GCC 编译器
Redis 和 Nginx 在 Linux 系统上的部署均依赖 GCC 编译器,所以须注意,若选用 Linux 服务器,请保证系统具备 GCC 编译环境
查询命令:gcc -v,若没有gcc环境则需要自行安装,联网安装命令:yum install gcc gcc-c++
4. 网络要求
公网环境和内网环境均可部署集群,不过要求集群的服务器间具有良好的通信环境,如下:
类型 | 带宽 | 网段 | 备注 |
---|---|---|---|
公网 | 10M 以上 | 同网段 | / |
内网 | 无要求 | 同网段 | 内网一般都是百兆/千兆带宽,故对带宽不做要求 |
5. 机器要求
目前使用较多的是两节点集群基础方案(Nginx+Tomcat+Redis+ftp),我们以此为例,说明对服务器的要求。
5.1 服务器数量
注:若有条件,建议 Nginx、Redis、FTP分别部署在不同的服务器上。
5.1.1 两节点 web 集群
应用服务器1 | Web 容器(Tomcat、WebLogic、WAS) |
应用服务器2 | Web 容器(Tomcat、WebLogic、WAS) |
组件服务器3 | 负载均衡(Nginx) |
状态服务器(Redis) | |
文件服务器(FTP) |
5.1.2 三节点 web 集群
应用服务器1 | Web 容器(Tomcat、WebLogic、WAS) |
应用服务器2 | Web 容器(Tomcat、WebLogic、WAS) |
应用服务器3 | Web 容器(Tomcat、WebLogic、WAS) |
组件服务器4 | 负载均衡(Nginx) |
状态服务器(Redis) | |
文件服务器(FTP) |
5.2 内存配置
服务器 | 系统内存 | 分配给 Web 容器 JVM 内存 |
---|---|---|
应用服务器 | 建议 16G 以上 | 建议 8G 以上,不要超过 32G,过大会导致系统 FullGC 时间过长 |
组件服务器 | 建议 8G 以上 | / |
5.3 磁盘空间
部署集群工程要求各机器的根目录空余空间至少 40G 以上,如果模板资源文件超大,根据实际情况选择较大磁盘空间的服务器。
机器 | 作用 | 硬件 | 配置 | 说明 |
---|---|---|---|---|
应用服务器1 | 部署工程 | /(根目录) | 保证至少有 40G 空余可用空间 | 系统使用中的临时缓存地址 |
应用服务器2 | /usr | 部署工程,至少保证有 15G 空余可用空间 | 默认日志存放路径 | |
组件服务器3 | 部署集群组件 | /(根目录) | 保证至少有 40G 空余可用空间 | 系统使用中的临时缓存地址 |
/usr | 保证至少有 15G 空余可用空间 | 安装集群的各个组件,存放日志文件 | ||
/home | 保证至少有 10G 空余可用空间 | 文件服务器存储目录,存放模板等资源文件 |
6. 端口准备
分类 | 内容 | 端口 | 备注 |
---|---|---|---|
负载均衡 | Nginx | 80或443 | 外部端口,必须对外开放,可修改(nginx.conf),是集群系统入口端口,其他负载均衡的端口请自行配置 |
web容器 | Tomcat | 8080 | 外部端口,可不对外开放,可修改(server.xml),SSL、短地址等在负载均衡层面配置 |
WebLoigc | 7001 | ||
WebSphere | 9080 | ||
消息通知 | Websocket 端口 | ["48888", "49888"] | 详情请参见:集群配置WebSocket端口 |
Websocket 转发端口 | 48889 | ||
文件服务器 | FTP | 20、21 | 内部端口,可修改(自行操作) |
SFTP | 22 | 内部端口,不可修改 | |
HDFS | 9000 | 内部端口,可修改(自行操作) | |
状态服务器 | redis 单机 | 6379 | 内部端口,可修改(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 随机端口
7. 直连配置推荐
CPU | 数量级 | 内存 | 编辑用户并发 | 总用户并发 | ||||||
---|---|---|---|---|---|---|---|---|---|---|
物理核心数 | 逻辑核心数 | 结果集单元格数(行*列) | 整机 | JVM | 单机 | 双节点 | 三节点 | 单机 | 双节点 | 三节点 |
8 | 16 | 500万 | 12 | 8 | 20 | 40 | 50 | 150 | 250 | 300 |
8 | 16 | 1000万 | 32 | 16 | 30 | 50 | 60 | 200 | 250 | |
16 | 32 | 1000万 | 32 | 16 | 40 | 50 | 60 | 300 | 500 | 800 |
16 | 32 | 5000万 | 64 | 32 | 40 | 50 | 60 | 300 | 500 | 800 |
注:
大量计算是数据库完成,BI 内存消耗量主要和结果集大小、并发性能相关。
若使用虚拟机,核心数和逻辑核心数保持一致。
节点数增加并发性能提升较明显,支持扩充节点,最大并发的瓶颈主要在配置读取。
编辑用户并发:做数据集/仪表板的用户。
总用户并发:编辑+预览用户。( 如8核16G内存下,并发用户150个。指最大150个用户其中编辑用户最大20个其他均为预览用户 )