1. Azkaban
Azkaban
是由Linkedin开源的一个批量工作流任务调度器。用于在一个工作流内以一个特定的顺序运行一组工作和流程。Azkaban
定义了一种KV文件格式来建立任务之间的依赖关系,并提供一个易于使用的web用户界面维护和跟踪你的工作流。
2. quartz
网址:http://www.quartz-scheduler.org
Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目。Quartz 是一个完全由 Java 编写的开源作业调度框架,为在 Java 应用程序中进行作业调度提供了简单却强大的机制。
3. Elastic-job
elastic-job 是由当当网基于quartz 二次开发之后的分布式调度解决方案 , 由两个相对独立的子项目Elastic-Job-Lite和Elastic-Job-Cloud组成 。
elastic-job主要的设计理念是无中心化的分布式定时调度框架,思路来源于Quartz的基于数据库的高可用方案。但数据库没有分布式协调功能,所以在高可用方案的基础上增加了弹性扩容和数据分片的思路,以便于更大限度的利用分布式服务器的资源。
4. XXL-JOB
网址:https://github.com/xuxueli/xxl-job
XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。
5. saturn
网址:https://github.com/vipshop/Saturn
Saturn (任务调度系统)是唯品会Venus体系的一个组成部分,负责分布式的定时任务的调度,取代传统的Linux Cron/Spring Batch Job的方式,做到全域统一配置,统一监控,任务高可用以及分片并发处理。Saturn基于当当Elastic Job代码基础上自主研发的任务调度系统。
名称 | 框架实现方式 | 可能的问题 | 优点 |
---|---|---|---|
quartz | 依赖数据库,无中心 | 线上问题,因配置问题引起JOB延时 | |
xxl-job | 需要部署调度中心和数据库 | 若任务数量超过调度中心处理能力,会造成延时 | 文档完善,学习成本低,管理界面完善 |
elasticjob | 依赖zk | 若主节点下载,在主节点选出前会暂停调度能力 | 文档完善,依赖zk无中心 |
Saturn | 依赖zk | 同elasticjob 文档完善,管理界面完善 | |
azkaban |