IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Elastic-Job 分布式任务调度 -> 正文阅读

[Java知识库]Elastic-Job 分布式任务调度

1.什么是分布式任务调度?什么是Elastic-Job?

首先理解什么是分布式:
一个大的业务拆分成多个小业务分别部署在服务器,如:订单服务、商品服务和用户服务;
分布式任务调度:
订单服务中定时统计订单信息,商品服务中定时更新商品信息,用户服务定时更新用户信息;
回归主题:
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的优点

a.并行任务调度(多台服务器同时执行任务);
b.高可用;
c.高扩展;
d.任务管理和检测;
e.避免任务重复执行;

3.实现

1.引入依赖

<dependency>
    <groupId>com.dangdang</groupId>
    <artifactId>elastic-job-lite-core</artifactId>
    <version>${elastic.job.version}</version>
</dependency>
<dependency>
    <groupId>com.dangdang</groupId>
    <artifactId>elastic-job-lite-spring</artifactId>
    <version>${elastic.job.version}</version>
</dependency>

3.spring启动配置

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns:reg="http://www.dangdang.com/schema/ddframe/reg"
 xmlns:job="http://www.dangdang.com/schema/ddframe/job"
 xsi:schemaLocation="http://www.springframework.org/schema/beans
 http://www.springframework.org/schema/beans/spring-beans.xsd

 http://www.dangdang.com/schema/ddframe/reg 
 http://www.dangdang.com/schema/ddframe/reg/reg.xsd 
 http://www.dangdang.com/schema/ddframe/job 
 http://www.dangdang.com/schema/ddframe/job/job.xsd">

    
<reg:zookeeper id="regCenter" server-lists="zookeeperIP" namespace="elastic-job-id" base-sleep-time-milliseconds="30000" max-sleep-time-milliseconds="100000" max-retries="3" />

<!-- 配置处理数据流作业-->
<job:dataflow id="elasticJobTest" class="com.jd.id.test.ElasticJobTest" registry-center-ref="regCenter" cron="0/10 * * * * ?" sharding-total-count="3" sharding-item-parameters="0=A,1=B,2=C" />

<!-- 配置简单作业-->
<job:simple id="autoFlightChangeRecordTask" class="com.jd.id.test.DomeTask"
                registry-center-ref="regCenter" cron="0 0/1 * * * ?" sharding-total-count="1" overwrite="true"/>
</beans>

3.相关定时任务业务具体实现()

public class ElasticJobTest implements DataflowJob<Integer> {
    @Override  
    public List<Integer> fetchData(ShardingContext shardingContext) {        
        List<Integer> list = new ArrayList<Integer>();
        list.add(1);
        list.add(2);
        list.add(3);
        list.add(4);
        return list;//抓取数据
    }
    @Override
    public void processData(ShardingContext shardingContext, List<Integer> list) {        
        for (Integer i : list) {
            System.out.println(i);//处理数据
        }
    }
}


public class DomeTask implements SimpleJob {
    @Override
    public void execute(ShardingContext shardingContext) {
        System.out.println("demo test ...");//定时执行
    }
}

4.类似的产品

Saturn: 唯品会开源的一个分布式任务调度平台,基于Elastic-Job;
xxl-job:大众点评的分布式任务调度平台;
TBSchedule:淘宝的一款非常优秀的高性能分布式调度框架,目前被应用于阿里、京东、支付宝、国美等很多互联网企业的流程调度系统中。

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-03-10 22:17:51  更:2022-03-10 22:18:48 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 11:48:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码