1. 软件环境要求
注:FineDataLink 支持了一些国产化的操作系统、中间件、芯片等,国产化环境准备请参见:FineDataLink支持的国产化环境
类别 | 型号 | |
---|---|---|
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 Centos 7.6、Centos 7.8、Centos 7.9 | |
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 RedHat 7.7、RedHat 7.9、RedHat 8.0 | |
Ubuntu | Ubuntu 10.04.4、Ubuntu18.04、Ubuntu 20 | |
Amazon Linux | Amazon Linux AMI release 2018.03 | |
Rocky Linux | Rocky Linux 8.8~9.4版本 | |
Windows | Windows Server 2008 及以上 Windows 11 | |
配置库 | RDS MySQL、MySQL、SQL Server、Oracle、DB2、PostgreSQL 正式工程需要配置外接数据库,详情请参见:配置外接数据库 | |
浏览器 | 谷歌内核浏览器 建议使用最新版本的浏览器 |
需注意:
1)以上操作系统为推荐使用类型,用户若需要使用其他 Linux 系统部署 FineDataLink,有问题可联系帆软技术支持,联系方式:「服务平台>在线支持」、电话「400-811-8890」。
2)使用中文的用户将工程部署到 Linux 系统时,需确认系统中是否有中文语言包,具体请参见:Linux 系统安装中文语言包
3)数据管道 功能使用前需要部署 Kafka, 而 Kafka 建议安装在 Linux 系统中(Kafka 也支持安装在 Windows 中,但性能会受到限制,仅做演示使用,不建议用于生产环境 );Kafka 和 FDL 可以不在一个服务器中安装。
2. 网络要求
公网环境和内网环境均可部署工程。如下:
网络环境 | 数据量(行) | 带宽 |
---|---|---|
公网 | <千万级 | 50M |
>=千万级 | 100M | |
内网 | -- | 无限制 |
带宽主要限制数据传输的单位流量阈值,简单换算公式:带宽 (Mb/s)*80%/8(bit)=流量(MB/s),*80%是因为实际传输中需要留出一定保留带宽,避免网络阻塞。
快速映射表:
带宽 | 流量阈值 | 推荐指数 |
---|---|---|
5Mb/s | 512KB/s | ⭐️ |
50Mb/s | 5MB/s | ⭐️⭐️ |
100Mb/s | 10MB/s | ⭐️⭐️⭐️ |
10000Mb/s | 1000MB/s | ⭐️ |
内部大量测试下(数据量级千万级),数据传输流量接近 50M 带宽换算值,不超过 100M,所以推荐配置 50M-100M 的带宽。
3. 机器要求
3.1 资源控制内存
注:资源控制设置详情参见:负载分配 。
3.1.1 未知定时任务数和管道任务数(适用于新部署的工程)
内存 | 推荐指数 |
---|---|
8G | ⭐️ |
16G | ⭐️⭐️ |
32G | ⭐️⭐️⭐️ |
32G+ | 超出请按照实际业务需求分配,过大可能会导致系统 FullGC 时间过长 |
3.1.2 已知定时任务数和管道任务数(适用于工程迁移、配置升级)
最小内存需求=MAX(运行中定时内存下限,运行中管道内存下限)
计算方式 | 内存 |
---|---|
精确 | 最小内存需求=MAX(运行中定时内存下限,运行中管道内存下限),见下方计算表 |
粗略 | 最小内存需求=MAX(运行中定时内存下限,运行中管道内存下限),定时和管道均按每个任务1G算 |
1)4.1.5.5 及之后版本
类型 | 节点 | 内存 | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
定时 | 单个输入节点 | buffer+outputSize*2*channel buffer: 非关系型 DB 表输入(如简道云、Mongo)以及其他输入类型(如 API 输入、文件输入等),一个 Reader 占用 64MB 的内存 关系型 DB表输入,取决于表的结构。对于输入表的每一列,分配 1MB 内存,特别地,如果这一列的精度(precision)超过了1024,则分配 2MB 内存。最终结果会向上补正到 8MB 的倍数,且不会超过 64MB
channel: Channel 的算法相对复杂一些,但对于一般的表,Channel 通常是 8MB 或者 16MB ,最高亦不会超过 64MB outputSize: 与输入节点直接连线的后置节点的数量 | ||||||||||||||||||||
过程节点 | 64+outputSize*2*64 outputSize(与输入节点的outputSize定义不同): 与过程节点直接连线的输出节点和 Python 节点的数量之和 过程节点后置的过程节点不算在 outputSize 里 | |||||||||||||||||||||
单个输出节点 | 32M 输出节点通常占用 32MB 内存。特别地,如果是输出到 Doris 或者 StarRocks ,占用 90MB 内存 | |||||||||||||||||||||
管道 | - | 与定时任务输入+输出节点一致 |
输入节点(三个写入端):(8+1*2*24)*3
过程节点(一个转换):64+2*2*64
输出节点(两个输出):32+32
总计:552MB
可见对应日志描述:
2)4.1.5.5 之前版本
运行中定时/管道任务内存粗略计算表:(适用于任务数量多,精确计算不便)
类型 | 节点 | JVM 内存 |
---|---|---|
定时 | -- | 1024M/每任务 |
管道 | -- | 1024M/每任务 |
运行中定时/管道任务内存精确计算表:
类型 | 节点 | 内存 |
---|---|---|
定时 | 单个输入节点 | 64M+128M*流出通道数量 |
全部过程节点 | 64M+128M*连接的输出节点数量 | |
单个输出节点 | 32M | |
管道 | -- | 1024M/每任务 |
定时任务计算示例:
3.2 Web 容器内存
>=资源控制内存(例如初始部署的工程,使用资源控制内存 16G ,则 Web 容器内存大于 16G 即可,但不建议超过 80% 的系统内存)
注1:修改容器内存方式详情参见:修改Tomcat内存
注2:资源控制内存详情参见本文 3.1 节。
3.3 系统内存
>=Web容器内存>=资源控制内存(Web 容器内存推荐小于 80% 的系统内存)
注:内存越大在使用过程中可扩展性应该就越大,比如现在需要的并发数是4,后续如果需要 8 并发,只需要调大资源控制内存和 Web 容器内存。
3.4 CPU配置
线程数>=并发任务数*2
为保证并发传输高性能表现,CPU线程数可略大于需并发任务数*2
并发任务数 | CPU线程数(推荐) |
---|---|
4 | 8 |
10 | 20 |
N | N*2 |
CPU 主要限制并发运行的定时任务数和管道任务数。
数据管道任务的全量同步阶段和定时任务同时受 cpu 线程数影响并发,但是数据管道任务的增量同步阶段不受 cpu 线程数影响。
3.5 磁盘空间
50G+
磁盘空间主要是两个方面的占用,文件空间(安装文件、任务文件、日志文件、备份文件)和任务读写吞吐磁盘,数据表传输主要是内存读写,内存充分情况下磁盘的开销较小,无需预留过多。
类别 | 项目 | 磁盘占用 | 说明 |
---|---|---|---|
文件空间 | 初始安装 | 4G | -- |
任务文件 | 20M/每百任务 | 根据内部测试环境上千任务估算得到 | |
运行记录文件 | 1M/每百记录 | 根据内部测试环境上万记录估算得到 | |
应用日志 | <10G | 可自行清理 | |
备份文件 | <20G | 可自行清理 | |
服务器本地目录 | X | 根据实际使用量自行增加 | |
数据吞吐 | -- | 10G | -- |
GPLOAD | 默认1G/每任务 | 根据实际使用量自行增加 |
综上,部署服务器至少预留磁盘空间 50G,如果需要用到服务器本地目录存放 excel/csv 数据场景,可根据实际需求量自行增加。
4. 部署安装包准备
联系技术支持,获取通用安装包。技术支持联系方式:前往「服务」,选择「在线支持」、电话「400-811-8890」
5. 端口准备
分类 | 内容 | 端口 | 备注 |
---|---|---|---|
web容器 | Tomcat | 8080 注:4.0.6版本以及之后部署的工程,默认端口修改为8068 | 外部端口,可不对外开放,可修改(server.xml),SSL、短地址等在负载均衡层面配置 |
消息通知 | WebSocket 端口 | 4.0.6及之后版本的默认值["58888", "59888"] 4.0.6之前版本的默认值 ["38888", "39888"] | 详情请参见:单机配置WebSocket端口 |
WebSocket 转发端口 | 4.0.6及之后版本的默认值:58889 4.0.6之前版本的默认值:38889 |
1)端口是否被占用请参见:端口占用查看
2)如果默认端口与其他工程有冲突,需要先修改端口,再开放对应的端口。
3)若同一个服务器部署多个 Tomcat 工程,需要修改 Tomcat 端口号以防端口冲突,具体可参见:修改Tomcat端口号
4)若防火墙开启,需要开放相关端口号:Windows 系统开放端口步骤请参见:Windows服务器设置出入站规则 ,Linux 系统开放端口步骤请参见:Linux防火墙使用及配置
5)对于 docker 容器,或者服务器之间端口严格限制的环境,需要对节点的服务器之间开放端口,用于节点间通信。
选择 TCP 协议是 7800/7810/7820/7830/7840/7850/7860/7870 八个端口
选择 UDP 协议是 45588~65536 随机端口