elasticJob是一个分布式调度解决方案,由两个相互独立子项目组成
elasticJob相比较一般的定时任务框架,比如Qurtz框架等来说有如下的特点:
特点 | 简介 |
---|---|
弹性调度 | 支持分布式场景下分片和高可用,同时保持了水平扩展,提高执行效率和吞吐量 |
资源分配 | 动态的定制时间触发器,和动态的定制资源到对应的任务中 |
作业治理 | 提供了失效转移和错过作业重试机制,自诊断修复 |
作业依赖 | 基于有向无环图的作业间或者分片间的依赖 |
作业开放 | 统一接口,并且支持多种形式,比如http,脚本、文件、大数据等,同时能够嵌入spring家族中 |
可视化管控端 | 作业追溯管理、注册中心管理 |
ElasticJob-Lite 并无作业调度中心节点,而是基于部署作业框架的程序在到达相应时间点时各自触发调度。 注册中心仅用于作业注册和监控信息存储。而主作业节点仅用于处理分片和清理等功能
注册中心zookeeper的目录解析
目录 | 说明 |
---|---|
config | 作业配置信息,以 YAML 格式存储 |
instances | 作业运行实例信息,由作业运行服务器的 IP 地址和 PID 构成。 作业运行实例主键均为临时节点,当作业实例上线时注册,下线时自动清理。 |
sharding | 作业分片信息,子节点是分片项序号,从零开始,至分片总数减一。 |
servers | 作业服务器信息\IP 地址 |
leader | 作业服务器主节点信息,分为 election,sharding 和 failover 三个子节点。 分别用于主节点选举,分片和失效转移处理。 |
elasticJob的官方网址:https://shardingsphere.apache.org/elasticjob/index.html
apache.org/elasticjob/index.html