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