Elastic Job玩起来!

Elastic Job是一款解决分布式任务调度的框架,提供Simple、Dataflow和Script三种作业类型,支持分布式调度、弹性扩容缩容和失效转移等功能。在使用前需安装Zookeeper作为注册中心,通过配置文件和代码实现作业开发。Elastic Job还提供了轻量级的运维平台elastic-job-lite-console进行作业管理。
摘要由CSDN通过智能技术生成

1、Elastic Job介绍

我们开发定时任务一般都是使用quartz或者spring-task,无论是使用quartz还是spring-task,我们至少会遇到以下两个痛点:

  • 不敢轻易跟着应用服务器多节点部署,可能会重复多次执行而引发系统逻辑的错误。
  • quartz的集群仅仅只是用来HA,节点数量的增加并不能给我们的每次执行效率带来提升,即不能实现水平扩展。
    说明:Elastic-job分布式任务调度,就可以帮我们解决上面两个痛点。

Elastic-Job是当当开源的一款非常好用的分布式任务调度框架,由两个相互独立的子项目Elastic-Job-Lite和Elastic-Job-Cloud组成。Elastic-Job-Lite定位为轻量级无中心化解决方案,使用jar包的形式提供分布式任务的协调服务。Elastic-Job-Lite这也是本次所要讲解和使用的子项目。

主要功能:

  • 分布式调度协调

  • 弹性扩容缩容

  • 失效转移

  • 错过执行作业重触发

  • 作业分片一致性,保证同一分片在分布式环境中仅一个执行实例

  • 自诊断并修复分布式不稳定造成的问题

  • 支持并行调度

  • 支持作业生命周期操作

  • 丰富的作业类型

  • Spring整合以及命名空间提供

  • 运维平台

官网:http://www.elasticjob.io/

在这里插入图片描述

2、Elastic Job入门

(1)作业类型介绍
Elastic-Job提供Simple、Dataflow和Script 3种作业类型。 方法参数shardingContext包含作业配置、分片和运行时信息。可通过getShardingTotalCount(), getShardingItem()等方法分别获取分片总数,运行在本作业服务器的分片序列号等。

  • Simple类型作业
    意为简单实现,未经任何封装的类型。需实现SimpleJob接口。该接口仅提供单一方法用于实现,此方法将定时执行。与Quartz原生接口相似,但提供了弹性扩缩容和分片等功能

  • Dataflow类型作业
    Dataflow类型用于处理数据流,需实现DataflowJob接口。该接口提供2个方法可供实现,分别用于抓取(fetchData)和处理(processData)数据。

  • Script类型作业
    意为脚本类型作业,支持shell,python,perl等所有类型脚本。只需通过控制台或代码配置scriptCommandLine即可,无需编码。执行脚本路径可包含参数,参数传递完毕后,作业框架会自动追加最后一个参数为作业运行时信息。

3、Elastic Job使用前准备

(1)安装zk【zookeeper】
第一步:Elastic-Job使用了zookeeper作为注册中心;所以可以解压“资料/zookeeper-3.4.9.tar.gz”文件。

第二步:在解压的“zookeeper-3.4.9“文件夹下创建“data”文件夹

第三步:找到“zookeeper-3.4.9\conf”路径,复制zoo_sample.cfg 为 zoo.cfg
然后在里面修改存放zookeeper的运行数据和日志的路径dataDir(12行);将该值修改为第二步骤中创建的data文件夹的路径。如下:

dataDir=D:\\zookeeper-xxx-xx\\datas

在这里插入图片描述
启动zk

  • win
    直接双击启动文件启动即可
    在这里插入图片描述
  • Linux
    到zk解压目录下的bin目录下使用以下命令启动
./zkServer.sh start

4、Elastic Job作业开发

入门例子:
步骤:
A:spring集成elastic job
(1)先创建项目
在这里插入图片描述(2)导入依赖

  <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>4.3.10.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>com.dangdang</groupId>
            <artifactId>elastic-job-lite-core</artifactId>
            <version>2.1.5</version>
        </dependency>
        <dependency>
            <groupId>com.dangdang</groupId>
            <artifactId>elastic-job-lite-spring</artifactId>
            <version>2.1.5</version>
        </dependency>
    
  • 20
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值