系统介绍

官网介绍--Apache DolphinScheduler是一个分布式和可扩展的开源工作流协调平台,具有强大的DAG可视化界面

从我面对的使用场景来讲,主要是运用它的调度功能,海豚的功能模块很多,用户管理、项目管理、资源管理、告警管理、系统资源监控等等,但是其核心的功能是在项目管理里的工作流和任务节点管理,配置完工作流后可以选择手动触发或配置定时调度来运行任务。

核心功能介绍

海豚的核心功能就是创建工作流,配置任务节点,然后上线运行。当然节点的任务类型支持很多种,比如shell类型节点、sql类型节点、质量监控类型、条件判断、子依赖等。创建完工作流后海豚会生成DAG(个人理解是有向图)结构数据,运行时会按照这个数据结构去按顺序生成任务实例并执行。海豚本身部署架构分为四部分:API(接收处理web接口请求),MASTER(创建工作流实例并执行),WORKER(创建任务实例并执行,可以是多节点),ALERT(告警服务),复杂的部署架构决定了海豚拥有很多运行的中间状态,排查问题的复杂度会变的比较高,但是正常情况下服务运行的稳定性还是比较高的。

API服务:

海豚web页面的接口都是请求此服务,除了海豚API的文档提供的接口外还有部分隐藏接口藏在controller里需要去看源码发现,自已可以按需取用,需注意事项时海豚本身有用户校验机制,即外部调用api服务需要提供用户token在请求头才能通过验证,这个token在海豚的令牌管理里可以配置。

MASTER服务:

当API接受到工作流运行的请求和定时任务调度需要运行工作流时,会构建COMMAND通知master服务创建工作流实例,master会查询取出工作流的DAG数据创建工作流实例并执行运行逻辑,和worker服务交互(涉及到状态变更)运行该工作流实例下的每一个任务实例

WORKER服务:

创建任务实例并执行,与master交互运行状态以保证工作流实例的正常运行

ALERT服务:

创建了工作流配置了告警时如果触发告警则调用该服务

以上便是个人使用过程中对系统的一些理解和认识了。