分布式部署

    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的安装目录建议保持一致,方便统一管控,相关的配置文件最好也保持一致
    • 如果某些服务器,端口已被其他应用占用,无法使用时,需要调整该服务端口
    • 一键启停脚本,根据实际情况,进行调整,对于不再本本服务器上部署的微服务,需要在一键启动脚本中,将对应的启停命令注释掉。