elastic-job 定时任务 —— elasticjob 介绍与使用教程


Elastic-Job 介绍

概述:

Elastic-Job 是当当网开源的一个分布式调度解决方案,基于 Quartz 二次开发的,由两个相互独立的子项目 ElasticJob-Lite 和 Elastic-Job-Cloud 组成。ElasticJob-Lite 是一个轻量级无中心化的解决方案,它提供了分布式任务调度的核心功能,以 Jar 包的形式提供分布式任务的协调服务;而 Elastic-Job-Cloud 则是基于云环境下的分布式任务调度方案,需要结合 Mesos 和 Docker 使用,它采用了基于云原生的思想,以轻量级的微服务架构为基础,支持更大规模和复杂的分布式任务调度场景。
在这里插入图片描述
ElasticJob 是面向进程内的线程级调度框架。能够与 Spring 、Dubbo 等 Java 框架配合使用,在作业中可自由使用 Spring 注入的 Bean,如数据源连接池、Dubbo 远程服务等,更加方便的贴合业务开发。

弹性调度是 ElasticJob 最重要的功能,也是这款产品名称的由来。 它是一款能够让任务通过分片进行水平扩展的任务处理系统。

分片:

任务的分布式执行,需要将一个任务拆分为多个独立的任务项,然后由分布式的服务器分别执行某一个或几个分片项。

ElasticJob 中任务分片项的概念,使得任务可以在分布式的环境下运行,每台任务服务器只运行分配给该服务器的分片。随着服务器的增加或宕机,ElasticJob 会近乎实时的感知服务器数量的变更,从而重新为分布式的任务服务器分配更加合理的任务分片项,使得任务可以随着资源的增加而提升效率。

举例说明,如果作业分为 4 片,用两台服务器执行,则每个服务器分到 2 片,分别负责作业的 50% 的负载,如下图所示。
在这里插入图片描述


相关依赖

使用 ElasticJob 时,需要添加以下依赖包到项目中

引入 dangdang 依赖:

  1. 如果是简单 Java 项目,使用 elastic-job-lite-core 核心依赖:
    <dependency>
        <groupId>com.dangdang</groupId>
        <artifactId>elastic-job-lite-core</artifactId>
        <version>2.1.5</version>
    </dependency>
    
  2. 如果是集成到 Spring 框架中,使用 elastic-job-lite-spring 依赖,该依赖包含了 elastic-job-lite-core 核心依赖:
    <dependency>
        <groupId>com.dangdang</groupId>
        <artifactId>elastic-job-lite-spring</artifactId>
        <version>2.1.5</version>
    </dependency>
    

ElasticJob 已于 2020 年 5 月 28 日成为 Apache ShardingSphere 的子项目。当当更新到 2.1.5 版本,捐赠到 Apache 后,包名变更,从 3.0.0 版本开始更新:

  1. 如果是简单 Java 项目,使用 elasticjob-lite-core 核心依赖:(注意在加入 Apache 后 elastic-job 少了 “-” 变为 elasticjob)
    <dependency>
        <groupId>org.apache.shardingsphere.elasticjob</groupId>
        <artifactId>elasticjob-lite-core</artifactId>
        <version>3.0.4</version>
    </dependency>
    
  2. 如果是集成到 Spring 框架中,使用 elasticjob-lite-spring-core 依赖,该依赖包含了 elasticjob-lite-core 核心依赖:
    <dependency>
        <groupId>org.apache.shardingsphere.elasticjob</groupId>
        <artifactId>elasticjob-lite-spring-core</artifactId
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值