分布式任务调度 ElasticJob 多线程处理海量数据

项目中经常遇到海量数据批量处理的问题,第一时间想到通过多线程来处理,要想海量数据快速的处理完成, 就需要使用多台服务器并行处理。本文演示如何在分布式环境下使用 ElasticJob 处理海量数据, 通过 Demo 展示多机任务如何分片,作业如何拆分,如何水平扩容等问题。

1 概述

Elastic Job 是面向互联网生态和海量任务的分布式调度解决方案。最初由当当基于 ZooKeeper、 Quartz 进行二次开发的分布式解决方案。2020年 6月,经过 Apache ShardingSphere 社区投票,接纳 ElasticJob 为其子项目。 目前 ElasticJob 的四个子项目已经正式迁入 Apache 仓库。

2 演示目标

  • leader 节点选举;
  • 任务分片, 分片是否均匀;
  • 水平扩容;

3 演示源码

3.1 相关依赖包引入

  • 演示代码基于 3.0.0-RC1 版本编写,环境要求: Java 8及以上版本、Maven 3.5.0 及以上版本、 ZooKeeper 3.6.0 及以上版本;
  • 本文采用 Java 8、 Maven 3.6.3、 ZooKeeper 3.7.0、SpringBoot 2.3.4.RELEASE;
  • ZooKeeper 3.7.0 下载地址: https://apache.claz.org/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0-bin.tar.gz
  • 项目启动前需要下载并启动 ZooKeeper: ./zkServer.sh start
<dependency>
    <groupId>org.apache.shardingsphere.elasticjob</groupId>
    <artifactId>elasticjob-lite-core</artifactId>
    <version>3.0.0-RC1</version>
</dependency>
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-framework</artifactId>
            <version>${curator.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-client</artifactId>
            <version>${curator.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-recipes</artifactId>
            <version>${curator.version}</version>
        </dependency>
    </dependencies>
</dependencyManagement>

3.2 配置文件

e
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值