1. Elastic-Job介绍
Elastic-Job是当当网开源的一个分布式调度解决方案,基于Quartz二次开发的,由两个相互独立的子项目ElasticJob-Lite和Elastic-Job-Cloud组成。Elastic-Job-Lite,它定位为轻量级无中心化解决方案,使用Jar包的形式提供分布式任务的协调服务,而Elastic-Job-Cloud子项目需要结合 Mesos 以及Docker在云环境下使用。
Elastic-Job的github地址∶https://github.com/elasticjob
1.1 主要功能
分布式调度协调
在分布式环境中,任务能够按指定的调度策略执行,并且能够避免同一任务多实例重复执行丰富的调度策略基于成熟的定时任务作业框架Quartz cron表达式执行定时任务弹性扩容缩容当集群中增加某一个实例,它应当也能够被选举并执行任务;当集群减少一个实例时,它所执行的任务能被转移到别的实例来执行。失效转移某实例在任务执行失败后,会被转移到其他实例执行错过执行作业重触发若因某种原因导致作业错过执行,自动记录错过执行的作业,并在上次作业完成后自动触发。支持并行调度支持任务分片,任务分片是指将一个任务分为多个小任务项在多个实例同时执行。作业分片一致性当任务被分片后,保证同一分片在分布式环境中仅一个执行实例。
2. Elastic-Job-Lite应用
Elastic-Job依赖于Zookeeper进行分布式协调,所以需要安装Zookeeper软件(3.4.6版本以上)
2.1 安装Zookeeper
- 在linux平台解压下载的zookeeper-3.6.2-bin.tar.gz
- 进入conf目录,
cp zoo_sample.cfg zoo.cfg - 进入bin目录,启动zk服务
#启动
./zkServer.sh start
#停止
./zkServer.sh stop
#查看状态
./zkServer.sh status
- Zookeeper的树形节点结构图

2.2 引入相关 jar 包
<dependency>
<groupId>com.dangdang</groupId>
<artifactId>elastic-job-lite-core</artifactId>
<version>2.1.5</version>
</dependency>
2.3 定时任务实例
- 需求:每隔两秒钟执行一次定时任务(resume表中未归档的数据归档到resume_bak表中,每次归档1条记录)
- resume_bak 和 resume表结构完全一样
- resume表中数据归档之后不删除,只将state置为"已归档"
- 表结构
-- ----------------------------
-- Table structure for resume
-- ----------------------------
DROP TABLE IF EXISTS `resume`;
CREATE TABLE `resume` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
`sex` varchar(255) DEFAULT NULL,
`phone` varchar(255) DEFAULT NULL,
`address` varchar(255) DEFAULT NULL,
`education` varchar(255) DEFAULT NULL,
`state` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1001 DEFAULT CHARSET=utf8;
SET FOREIGN_KEY_CHECKS = 1;
2.4 程序开发
- 定时任务类
package com.study;
import com.dangdang.ddframe.job.api.ShardingContext;
import com.dangdang.ddframe.job.api.simple.SimpleJob;
import com.study.utils.JdbcUtil;
import java.util.List;
import java

本文介绍了Elastic-Job,一个由当当网开源的分布式调度解决方案,基于Quartz实现。主要功能包括分布式环境中任务的协调执行、故障转移、任务分片等。文章详细讲解了Elastic-Job-Lite的使用,包括安装Zookeeper、引入jar包、创建定时任务实例以及程序开发。此外,还阐述了Elastic-Job-Lite的轻量级去中心化特点,任务分片策略以及弹性扩容机制。
最低0.47元/天 解锁文章
1037

被折叠的 条评论
为什么被折叠?



