首页 » 99链接平台 » 图说系列:dolphinscheduler的工作流程(图说工作流工作流程流程调度)

图说系列:dolphinscheduler的工作流程(图说工作流工作流程流程调度)

落叶飘零 2024-11-03 23:19:49 0

扫一扫用手机浏览

文章目录 [+]

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

DolphinScheduler具有以下几个优良功能特性:

Cloud Native — 支持多云/数据中心工作流管理,也支持 Kubernetes、Docker 部署和自定义任务类型,分布式调度,整体调度能力随集群规模线性增长高可靠与高可扩展性 — 去中心化的多 Master 多 Worker 设计架构,支持服务动态上下线,自我容错与调节能力支持多租户丰富的使用场景 — 包括流、暂停、恢复操作,以及额外的任务类型,如 Spark、Hive、MR、Shell、Python、Flink 以及 DS 独有的子工作流、任务依赖设计,扩展点采用插件化的实现方式简单易用 — 所有流程定义操作可视化编排,定义关键信息一目了然,一键部署

图说系列:dolphinscheduler的工作流程(图说工作流工作流程流程调度) 99链接平台
(图片来自网络侵删)

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

就在前几天,dolphinscheduler发布了最新的2.0版本。
本源码解析图仍是基于1.3版本的。

日期

版本

下载

Oct. 26th, 2021

2.0.0-alpha

Source code

[src] [asc] [sha512]

二、图说dolphinscheduler任务执行过程2-1 概念梳理

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

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

如果接触过Activiti的同学,是不是有种似曾相识的感觉呢?[可爱]

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上画了一遍,可以点我「链接」哈。

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

相关文章

开关特性测试仪(开关触发传感器量程特性)

开关特性测试仪是针对各种高压开关研制的一种通用型电脑智能化测试仪器。开关特性测试仪应用光电脉冲技术,单片计算机技术及可靠的抗电磁辐...

99链接平台 2025-01-02 阅读789 评论0