Elastic-Job源码解读
写在前面 目前公司使用的作业调度工具是Elastic-Job,版本2.1.5,三月份因为失效转移配置出过一次线上事故,排查问题的过程中粗略的读了一下源码,刚好借此机会深入理解一下Elastic-Job 。 总体架构 注:图片来自https://github.com/elasticjob/elastic-job-lite 概述 Elastic-Job是一个分布式调度解决方案,由两个相互独立的子项目Elastic-Job-Lite和Elastic-Job-Cloud组成。Elastic-Job-Lite定位为轻量级无中心化解决方案,使用jar包的形式提供分布式任务的协调服务。Elastic-Job-Cloud使用Mesos + Docker的解决方案,额外提供资源治理、应用分发以及进程隔离等服务。(本文不讨论) Elastic-Job核心组件:quartz、Zookeeper。 quartz的角色是调度每台机器上的任务(即每台机器上的分片任务何时执行) Zookeeper则是分布式调度中心 功能 Elastic-Job-Lite分布式调度协调弹性扩容缩容失效转移错过执行作业重触发作业分片一...
