1、Elastic Job简介
elastic-job是当当开源的一款非常好用的作业框架,在这之前,我们开发定时任务一般都是使用quartz或者spring-task(ScheduledExecutorService),无论是使用quartz还是spring-task,我们都会至少遇到两个痛点:
不敢轻易跟着应用服务多节点部署,可能会重复多次执行而引发系统逻辑的错误。
quartz的集群仅仅只是用来HA,节点数量的增加并不能给我们的每次执行效率带来提升,即不能实现水平扩展。
Elastic job是当当网架构师张亮,曹昊和江树建基于Zookepper、Quartz开发并开源的一个Java分布式定时任务,解决了Quartz不支持分布式的弊端。Elastic job主要的功能有支持弹性扩容,通过Zookepper集中管理和监控job,支持失效转移等。项目由两个相互独立的子项目Elastic-Job-Lite和Elastic-Job-Cloud组成。
2、使用Elastic Job实现静态定时任务
2.1 pom.xml引入依赖包
<dependency>
<groupId>com.github.kuhn-he</groupId>
<artifactId>elastic-job-lite-spring-boot-starter</artifactId>
<version>2.1.5</version>
</dependency>
2.2 application.properties配置文件中添加配置zookeeper服务地址信息以及注册的命名空间名字
server.port=8080
spring.application.name=elastic-job-02
elaticjob.zookeeper.server-lists=192.168.1.12:2181
elaticjob.zookeeper.namespace=job1