Elastic-Job

一个分布式调度的解决方案,基于 Quartz 二次开发的弹性分布式任务调度系统,功能丰富强大,采用 Zookeeper 实现分 布式协调,实现任务高可用以及分片。

简介

Elastic-job:当当网基于quartz 二次开发的弹性分布式任务调度系统,功能丰富强大,采用zookeeper实现分布式协调,实现任务高可用以及分片。

Elastic-Job是一个分布式调度的解决方案,由当当网开源,它由两个相互独立的子项目Elastic-Job-Lite和Elastic-Job-Cloud组成,使用Elastic-Job可以快速实现分布式任务调度。

  • Elastic-Job-Lite 定位为轻量级无中心化解决方案,使用jar的形式提供分布式任务的协调服务;
  • Elastic-Job-Cloud 使用 Mesos 的解决方案,额外提供资源治理、应用分发以及进程隔离等服务。

ElasticJob 的各个产品使用统一的作业 API,开发者仅需要一次开发,即可随意部署。

ElasticJob-Lite

定位为轻量级无中心化解决方案,使用 jar 的形式提供分布式任务的协调服务。

ElasticJob-Cloud

采用自研 Mesos Framework 的解决方案,额外提供资源治理、应用分发以及进程隔离等功能。

ElasticJob-Lite ElasticJob-Cloud
无中心化
资源分配 不支持 支持
作业模式 常驻 常驻 + 瞬时
部署依赖 ZooKeeper ZooKeeper + Mesos

功能列表

  • 弹性调度

支持任务在分布式场景下的分片和高可用 能够水平扩展任务的吞吐量和执行效率 任务处理能力随资源配备弹性伸缩

  • 资源分配

    • 在适合的时间将适合的资源分配给任务并使其生效
    • 相同任务聚合至相同的执行器统一处理
    • 动态调配追加资源至新分配的任务
  • 作业治理

    • 失效转移
    • 错过作业重新执行
    • 自诊断修复
  • 作业依赖(TODO)

    • 基于有向无环图(DAG)的作业间依赖
    • 基于有向无环图(DAG)的作业分片间依赖
  • 作业开放生态

    • 可扩展的作业类型统一接口
    • 丰富的作业类型库,如数据流、脚本、HTTP、文件、大数据等
    • 易于对接业务作业,能够与 Spring 依赖注入无缝整合
  • 可视化管控端

    • 作业管控端
    • 作业执行历史数据追踪
    • 注册中心管理