1. Elastic Job1.1前言
我们开发定时任务一般都是使用quartz或者spring-task,无论是使用quartz还是spring-task,我们至少会遇到以下两个痛点:
l 不敢轻易跟着应用服务器多节点部署,可能会重复多次执行而引发系统逻辑的错误。
l quartz的集群仅仅只是用来HA,节点数量的增加并不能给我们的每次执行效率带来提升,即不能实现水平扩展。
说明:Elastic-job分布式任务调度,就可以帮我们解决上面两个痛点。
1.2介绍
Elastic-Job是当当开源的一款非常好用的分布式任务调度框架,由两个相互独立的子项目Elastic-Job-Lite和Elastic-Job-Cloud组成。Elastic-Job-Lite定位为轻量级无中心化解决方案,使用jar包的形式提供分布式任务的协调服务。Elastic-Job-Lite这也是本次所要讲解和使用的子项目。
主要功能:
l 分布式调度协调
l 弹性扩容缩容
l 失效转移
l 错过执行作业重触发
l 作业分片一致性,保证同一分片在分布式环境中仅一个执行实例
l 自诊断并修复分布式不稳定造成的问题
l 支持并行调度
l 支持作业生命周期操作
l 丰富的作业类型
l Spring整合以及命名空间提供
l 运维平台
官网:http://www.elasticjob.io/
1.3基本概念
n 分片概念
任务的分布式执行,需要将一个任务拆分为多个独立的任务项,然后由分布式的服务器分别执行某一个或几个分片项。
例如