弹性资源组件elastic-resource设计(一)-架构

简介

       弹性资源组件提供动态资源能力,是分布式系统关键基础设施,分布式datax,分布式索引,事件引擎都需要集群和资源的弹性资源能力,提高伸缩性和作业处理能力。

       本文介绍弹性资源组件的设计,包括架构设计和详细设计,指导开发人员代码开发,设计基于《flink原理源码分析(一) 集群与资源@k8s》,抽出作业管理器,包括其内部的调度器,标准化为资源消费者,接入系统提供实现,标准化其与资源管理器和任务管理器的交互接口;增加约束,如,组件间通讯rpc组件,高可用组件,心跳组件等,最大程度使用原flink代码,后续的迭代不断标准化,抽象化交互接口,支持不同的实现,减少侵入性。

关键词

作业管理器/资源管理器/任务管理器  弹性资源组件关联的3个主要角色

参考资料

《flink集群与资源@k8s源码原理分析》 详细分析了flink集群与资源的源码和原理

场景视图

上图是场景视图,按领域分,

集群

集群启动,master和worker构建,k8s环境下,涉及k8s客户端的使用

资源管理器

资源的申请,管有资源

任务管理器

资源的提供,任务执行

作业管理器

作业管理器是接入系统提供,用例不是本组件的用例,描述的是接入规范

高可用

功能用例,独立出来描述高可用

接入规范

作业管理器使用弹性资源组件的规范

技术架构

弹性资源组件的技术架构图,其中作业管理器接入系统提供,需实现与资源管理器和任务管理器的交互,交互使用rpc机制。

总体架构是master-worker,master的高可用是k8s的复制机制提供,选主机制k8s提供,作业管理器和资源管理器参与选主,作业管理器/任务管理器接入资源管理器主节点监听,获取最新资源管理器;作业管理器接入作业管理器主节点监听,获取最新的作业管理器主节点

数据架构,资源是组件的核心数据,分两条线a线,b线

  1. 4资源请求->5a 分配可用资源-> 6a 请求使用资源-> 7a 提供资源->8a 提交任务
  2. 4资源请求->5b 分配待定资源-> 6b 请求新worker-> 7b 启动任务管理器->8b 注册/报告资源

a线是分配现有资源;b线请求新资源,新资源注册后是现有资源,在a线分配

组件架构

上图组件架构,组件作为SDK,提供RPC,组件工厂,高可用组件支持

NEXT

弹性资源组件elastic-resource设计(二)-集群,包括集群启动,master的部署和启动,任务管理器的部署和启动

弹性资源组件elastic-resource设计(三)-资源管理器,包括资源请求,资源提供,声明式资源管理

弹性资源组件elastic-resource设计(四)-任务管理器和资源消费者规范

弹性资源组件elastic-resource设计(五)-功能组件,包括rpc,kubeclient,心跳,高可用,slotpool

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

中间件XL

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值