【Java】Elastic Job从入门到入门

news/2025/3/19 15:26:28/文章来源:https://www.cnblogs.com/luyj00436/p/18781122

Elastic Job 是一个适合高吞吐量的分布式任务调度解决方案。

ElasticJob 通过弹性调度、资源管控、以及作业治理的功能,打造一个适用于互联网场景的分布式调度解决方案,并通过开放的架构设计,提供多元化的作业生态。 它的各个产品使用统一的作业 API,开发者仅需一次开发,即可随意部署。

环境准备

  • Zooker 3.6 + (必须):用于分布式协调

    zookeeper官网地址: https://zookeeper.apache.org/

    zookeeper下载地址:https://archive.apache.org/dist/zookeeper/

# 下载并解压
wget https://downloads.apache.org/zookeeper/zookeeper-3.7.1/apache-zookeeper-3.7.1-bin.tar.gz
tar -xvf apache-zookeeper-3.7.1-bin.tar.gz
# 配置基础参数
cd conf
cp zoo_sample.cfg zoo.cfg
# 启动服务
./bin/zkServer.sh start
  • JDK 11 + (推荐17)
  • Maven3.8 +

项目集成

在此之前,需要运行zookeeper

以SpringBoot为例,项目集成步骤如下。

  1. xml文件,添加Maven项目依赖。

    <!-- Zookeeper客户端-->
    <dependency><groupId>org.apache.curator</groupId><artifactId>curator-recipes</artifactId><version>5.1.0</version>
    </dependency>
    <!-- ElasticJob核心依赖-->
    <dependency><groupId>org.apache.shardingsphere.elasticjob</groupId><artifactId>elasticjob-lite-spring-boot-starter</artifactId><version>3.0.4</version>
    </dependency>
    
  2. 改yaml。配置zooker连接。

    elasticjob:zookeeper:server-lists: 127.0.0.1:2181  # Zookeeper地址namespace: elasticjob-demo  # 命名空间tracing:type: RDB   # 执行日志存储方式
    
  3. 开发第一个分片任务。

    实现MyJob,编写任务逻辑。

    @Component
    public class MyJob implements SimpleJob {@Overridepublic void execute(ShardingContext shardingContext) {// 获取单枪分片信息int shardIndex = shardingContext.getShardingItem();int totalShards = shardingContext.getShardingTotalCount();System.out.println("[分片信息]:" + shardIndex + "/" + totalShards + " [时间]:" + LocalDateTime.now());}
    }
    

    在配置人中定义调度规则:

    @Configuration
    public class JobConfig {@Beanpublic JobConfiguration myJobConfig() {return JobConfiguration.newBuilder("myShardingJob", 3)     // 任务名称,分片数量.cron("0/10 * * * * ?")     // cron表达式,10秒执行一次.shardingItemParameters("0=北京,1=上海,2=广州")   // 分片参数(可选).failover(true) // 失败自动恢复,默认为false.monitorExecution(true) // 监控任务执行,默认为true.build();}
    }
    

    运行后,控制台输出示例:

    分片1/3:处理数据ID%3=0的数据  
    分片2/3:处理数据ID%3=1的数据  
    分片3/3:处理数据ID%3=2的数据
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/901553.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Oracle OCP认证没落了吗?

Oracle OCP认证没落了吗? Oracle的OCP认证是数据库领域必考的一个认证,但随着国产化的发展,国内很多企业开发了自己的数据库产品,这种情况对很多人造成了错误的认识:OCP被淘汰了吗?不然,从行业需求、技术趋势、认证体系变化等角度综合分析,Oracle OCP证书并未完全“没…

查看dll文件的publicKeyToken

输入: SN -T "C:\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\log4net.dll"

把 DeepSeek 接入电话系统后,不知疲倦的智能客服向我们走来了

我们基于deepseek和Freeswitch做了一个智能电话客服。 它会基于给定的FAQ知识库来回答问题,自动进行语音识别和语音合成。 语音识别我们采用的是开源的FunAsr,语音合成采用的是第三方商用的API接口。我们接下来介绍下它的内部组成部分。【 第一阶段】当电话拨通电话后,电话服…

Seata的工作模式

Seata的分布式模型中各个角色的作用: 1.TM(事务管理器)是分布式事务的发起方,负责定义全局事务的边界(开始,提交,回滚),并于TC交互协调事务状态。 核心职责: ​ 通过@GlobalTransctional注解标记全局事务的起点。 ​ 向TC注册全局事务 ​ 根据业务逻辑决定全局事务的提交或回滚…

dify升级

一、需求 从0.14.2升级到0.15.3,要求模型供应商,创建的应用数据等等,不能丢失。二、安装0.14.2 下载dify代码cd /optgit clone https://github.com/langgenius/dify.gitcd dify/切换到tag 0.14.2git checkout 0.14.2git pull origin 0.14.2运行difycd dockercp .env.example…

机器人弧焊电源气体省气装置的工作原理是什么?

焊接机器人节气装置,作为一种在焊接流程中至关重要的气体调控设备,其核心宗旨在于在确保焊接作业品质卓越的同时,通过高度精确的气体流量调控机制,有效缩减气体的消耗量,进而达成显著的节气效益。该装置详尽地集成了气体质量流量控制器、适配的电源适配器、精准的电流传感…

分享一次利用无问AI进行应急响应

前情摘要:最近勒索病毒真的太猖獗了,光一星期我就接连处理了两起。不过黑客的攻击方式都是大同小异,处理完报告之后,特来分享其中一起。各位可得小心小心在小心,千万不要中招,不然就只有重装的份了。 事件概述: 最近,某公司机房数据库中了勒索病毒,工作人员上班发现后…

广告子包边切割焊接工艺-代加工-外协加工-委外加工-激光代加工-河南郑州-芯晨微纳(河南)

一、普通焊接 普通焊接主要针对大型标识,如银行或家具城的大型广告字。这种焊接方式使用焊机进行,具体流程包括: (1)切割:根据所需的字体大小,使用不同的激光切割机进行切割处理。这一步不仅包括字面的切割,还包括围边的切割。 (2)焊接包边:在焊接过程中,需要非常精…

什么!你还不会写Vue组件,编写《功能级权限》匹配公式组件

说明该文章是属于OverallAuth2.0系列文章,每周更新一篇该系列文章(从0到1完成系统开发)。该系统文章,我会尽量说的非常详细,做到不管新手、老手都能看懂。说明:OverallAuth2.0 是一个简单、易懂、功能强大的权限+可视化流程管理系统。 友情提醒:本篇文章是属于系列文章,…

基于策略的强化学习

基于策略的强化学习 1. 策略函数近似(Policy Function Approximation) 策略函数 π(a∣s)策略函数是一个概率密度函数,它根据当前状态 s 输出在该状态下采取每个可能动作 a 的概率。 在有限的状态和动作空间中,可以直接学习这个函数。但在连续动作空间或状态空间非常大时,…

软考数据库工程师

软考数据库工程师 重点 事务调度 1. 串行调度 多个事务依次(顺序)串行执行,且只有当一个事务的所有操作都执行完成才执行另一个事务的所有操作 2. 可串行化调度:并发调度 多个事务并发执行是正确的。当且仅当其并发结果与某一次序串行地执行的结果相同 并发问题 1. 丢失修改…

为Gazebo中的iris无人机添加realsense D435i相机

本机环境和实现目标 本机的系统位ubuntu20.04,已安装有ros noetic和PX4_Firmware,能够在Gazebo的环境中进行无人机的仿真。因为后续需要用实验室搭载有realsense D435i相机的无人机进行集群跟踪与避障的实验,准备为Gazebo中的iris无人机搭载上D435i相机先进行仿真验证。 注意…