Airflow 是 Airbnb 开源的,基于分布式任务队列 Celery 基础上的定时调度系统,它将不同的任务类型抽象成 operator,并提供 API 编排各任务之间的依赖关系和配置属性,形成 DAG,从而简化任务提交和维护成本。 同时 Airflow 还提供任务重跑,标记成功,查看日志等的可视化操作 UI 和更为灵活丰富的客户端命令行接口。另外可配置和可扩展的架构设计不仅支持单机单进程还支持基于 Celery 和 Mesos 的分布式集群运行,任务的消息通知也可以在 Redis 和 RabbitMQ 等中自由选择,使得 Airflow 可以灵活扩展。
实现一个分布式调度系统本身不难,难的是如何提供友好的交互,包括灵活的任务组织、提交、更新、日常任务维护等。更为重要的是调度引擎和执行引擎的稳定性,在这方面 Airflow 提供的方案很值得借鉴和学习。同时 Airflow 基于 Python 编写,为开发效率和快速验证思路带来了较大优势,在实际使用过程中,如何基于默认配置去调优都少不了对其调度流程和原理的掌握,本篇文章就为有志于从源码级别去了解其工作流程和优化的朋友准备的。
通过本篇文章,您可以了解到:
绑定成功
预订达标,作者开始写作
审核未达标,本场 Chat 终止
审核达标,文章发布
审核未达标,本场 Chat 终止