原文中文,约2600字,阅读约需7分钟。
📝
内容提要
本文介绍了Master-Worker架构的任务调度系统中Master的复杂性,以及需要准确管理工作流状态和调度下一步行为的核心。文章从工作流的生命周期入手,介绍了DolphinScheduler的实现过程。最终,任务实例会被发送到配置的Worker节点,工作流实例正式启动。
🎯
关键要点
-
Master-Worker架构的任务调度系统中,Master的复杂性更高,负责管理任务调度的准确性和稳定性。
-
核心在于准确管理工作流状态和调度下一步行为。
-
任务调度面临的问题包括避免任务重复启动、任务优先级、Worker分组等。
-
DolphinScheduler的工作流生命周期包括任务的初始化和运行。
-
任务启动有两个入口:系统调度和手动运行。
-
Master的执行过程分为生成工作流实例、构造DAG和分发任务实例三个阶段。
-
生成工作流实例时,Master从t_ds_command表中读取命令并生成ProcessInstance。
-
构造DAG时,生成任务实例并确定任务的执行顺序。
-
DAG对象存储了任务节点及其依赖关系,任务按优先级提交。
-
任务实例通过优先级队列分发到Worker节点,完成负载均衡。
-
Worker节点开始处理任务后,向Master发送通知,工作流实例正式启动。
🏷️