图说系列:dolphinscheduler的工作流程

一、什么是dolphinscheduler?

在这里插入图片描述
Apache DolphinScheduler,是一个分布式易扩展的可视化DAG工作流任务调度系统。致力于解决数据处理流程中错综复杂的依赖关系,使调度系统在数据处理流程中开箱即用

更多简介信息请查看官网
本文就让我们跟随子涵先生来用图说源码~走你!┏ (゜ω゜)=☞

二、图说dolphinscheduler任务执行过程

2-1 概念梳理

为了方便大家容易理解,子涵先生先帮大家梳理一下Dolphinscheduler中的几个概念:

  • ProcessDefinition:流程图定义,即用户在项目空间下通过拖拽保存的任务信息;
  • ProcessInstance:流程图实例。了解Java的同学可以通过class信息与类实例,来类比processDefinition与processInstance的概念。
  • Task:任务配置信息。一个流程图中可以有多个任务。
  • TaskInstance:任务实例。是根据任务配置信息生成的。
    模块

2-2 工作流执行过程源码解析

APIServer的作用

用户点击"运行"按钮时,工作流的执行过程就开始了。处理UI相关用户请求的都是APIServer模块,启动命令由ExecutorController.execute()进行处理,最终交给持久化到t_ds_command这个队列表中。
在这里插入图片描述

MasterSever的作用

MasterServer的主要作用是:解析任务创建流程实例、按照优先级提交任务队列、负载均衡、把任务分发给workerServer。接下来我们用画图的方式看看他是怎么执行的。

MasterServer启动后,会通过一个masterSchedulerService进行以下几个步骤:

(1)MasterServer环境检查;
(2)监听工作流队列(t_ds_command),查找可运行command();
(3)根据command返回流程实例;
(4)流程实例交给异步线程运行。

在这里插入图片描述

WorkerServer的作用

MasterServer使用netty的方式远程调用workerServer处理任务。worker任务的处理主要交给TaskExecuteProcessor来负责执行。图示如下:
在这里插入图片描述

三、结语

用图说代码是一个学习源码的不错的方式:一来可以清晰剖析代码结构,二来通过记录源码关键位置,回过头来再看时节省时间,且有迹可循。
有朋友私聊想获得我的作图,子涵特意把图在processOn上画了一遍,点我直达👌

感谢您的赏读。客官,点赞、留言再走呗~或者留下您的问题一起探讨~
让我们一起共同进步!

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

子涵先生

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

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

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

打赏作者

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

抵扣说明:

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

余额充值