分布式部署
Linkis的每个微服务都支持多活的部署方案,当然不同的微服务在系统中承担的角色不一样,有的微服务调用频率很高,资源会处于高负荷的情况, 在安装EngineConnManager的机器上,由于会启动用户的引擎进程,机器的内存负载会比较高,其他类型的微服务对机器的负载则相对不会很高, 对于这类微服务我们建议启动多个进行分布式部署,Linkis动态使用的总资源可以按照如下方式计算。
EngineConnManager使用总资源
\= 总内存 + 总核数
\= 同时在线人数 * (所有类型的引擎占用内存) *单用户最高并发数+ 同时在线人数 * (所有类型的引擎占用核数) *单用户最高并发数
例如:
分布式部署时微服务本身占用的内存可以按照每个2G计算,对于使用人数较多的情况下建议调大ps-publicservice的内存至6G,同时建议预留10G内存作为buffer。
以下配置假设每个用户同时启动两个引擎为例,对于64G内存的机器,参考配置如下:
EngineConnManager使用总资源 = 总内存 + 总核数 = 同时在线人数 * (所有类型的引擎占用内存) *单用户最高并发数+ 同时在线人数 * (所有类型的引擎占用核数) *单用户最高并发数
1.2 同时在线人数50-100
总内存:同时在线人数 100 单个引擎 1G内存 每个用户同时启动两个引擎 2 = 200G内存
1.3 同时使用人数 100-300
总内存:同时在线人数 300 单个引擎 1G内存 每个用户同时启动两个引擎 2 = 600G内存
服务器配置推荐:12台服务器,分别命名为S1,S2..S12
1.5 同时使用人数500以上
假如已经在服务器A上,成功以单机方式部署了linkis,现在想添加一台服务器B,进行分布式部署,可以参考以下步骤
模式:Eureka服务多活部署 ,部分服务部署在服务器A,部分服务部署在服务器B上
2.1 分布式部署的环境准备
和服务器A一样,服务器B需要进行基础的环境准备,请参考Linkis环境准备
注册中心Eureka服务,需要部署在服务器A和服务器B上,
修改Eureka配置文件,把两台Eureka的配置地址都加上,让Eureka服务之间相互注册。
在服务器A上,进行如下配置修改
2.3 安装物料的同步
2.4 调整启动脚本
根据实际情况,确定服务器A和服务器B上需要部署的服务, 比如 微服务linkis-cg-engineconnmanager
不会部署在服务器A上, 则修改服务器A的一键启停脚本,,sbin/linkis-stop-all.sh
,将服务相关的启停命令,注释掉
- 分部署部署时,linkis的安装目录建议保持一致,方便统一管控,相关的配置文件最好也保持一致
- 如果某些服务器,端口已被其他应用占用,无法使用时,需要调整该服务端口
- 一键启停脚本,根据实际情况,进行调整,对于不再本本服务器上部署的微服务,需要在一键启动脚本中,将对应的启停命令注释掉。