前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一种基于DAG的系统调度框架实现

一种基于DAG的系统调度框架实现

原创
作者头像
liddytang
修改2022-11-07 10:48:04
2.4K0
修改2022-11-07 10:48:04
举报
文章被收录于专栏:屌丝程序媛

本系统是为解决业务逻辑复杂且逻辑可抽象成单体式并发执行的业务场景,基于现有云原生平台实现业务逻辑微服务化,不仅大大提升业务扩展性、可维护性同事通过串改并降低计算时间成本。

DAG(Directed acyclic graph)调度

本系统中将业务逻辑拆成单个算子服务,按照数据流向编排成一个DAG有向无环图,也就是我们下面讲到的拓扑图,任务算子之间可能相互依赖,依赖数据驱动任务流向,最终按照算子编排流程(拓扑图)依次执行每个Task任务。可参照下图:

DAG流程.png
DAG流程.png

图中TaskB 算子输入参数依赖TaskA算子输出参数,Task C与 TaskA/TaskB算子相互独立可并行执行,最终所有计算结果在End处执行。

框架设计

DAG调度框架
DAG调度框架

控制层

  • UI用户: 用户通过可视化界面配置作业、拓扑及算子,一个作业对应于一次可执行任务;
  • Master控制中心:获取作业/拓扑/算子配置信息,将作业分发至拓扑调度中心及拓扑管理中心,用户对作业/拓扑及算子的更改均通过Master控制中心;
  • 拓扑管理中心:拓扑管理中心主要用于调度重试,依据数据状态增加状态容错;
  • 状态存储DB:每条生产输入数据处理流均使用唯一sessionID标志,存储因节点异常、网络异常、发布失败等导致作业执行失败的数据流,便于发起失败重试;

调度层

  • 接入中间件:支持流量去重、使用分级kafka实现流量分级、插件化HTTP实时接入方式;

拓扑调度中心

数据存储DB

API数据接出

数据接出中间件

算子

监控层

监控中心

对账中心

无状态重试

插件化接入方式

对账+平账

状态管理重试

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • DAG(Directed acyclic graph)调度
  • 框架设计
    • 控制层
      • 调度层
        • 监控层
          • 插件化接入方式
            • 对账+平账
              • 状态管理重试
              相关产品与服务
              对象存储
              对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档