前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >SpringBoot整合XXL-JOB【04】- 以GLUE模式运行与执行器负载均衡策略

SpringBoot整合XXL-JOB【04】- 以GLUE模式运行与执行器负载均衡策略

原创
作者头像
别惹CC
发布于 2025-01-13 06:02:10
发布于 2025-01-13 06:02:10
37203
代码可运行
举报
运行总次数:3
代码可运行

引子

在上节中,我们成功地配置了执行器并且执行了我们设定的定时任务。在本节中,将带大家感受下XXL-JOB的一个特别的运行模式-GLUE模式以及感受下集群模式下的不同路由策略。

一、什么是GLUE模式?

我们先来回顾下我们现在的定时任务是怎么应用的,我们先在调度中心里配置个任务,接着在项目里对需要定时执行的方法加上XXL-JOB的注解,也就是说我们如果现在需要对某个方法改成定时任务是需要重新发版部署的。

但GLUE模式支持我们直接对线上的某个方法改造成定时任务,而无需重新部署发布,接下来让我们看看怎么做。

二、使用GLUE模式

为了方便测试,我声明一个测试方法,如下:

代码语言:java
AI代码解释
复制
@Service
public class GlueTestService {

    public void testMethod() {
        System.out.println("定时任务执行时间" + new Date() + "testMethod()");
    }
}

可以看到,我并没有使用XXL-JOB的相关注解,这就是个普通方法。假如我们现在的场景需要我们不重新发布服务,只需要临时地定时调用它,就可以用GLUE模式。于是,我们先回到调度中心的任务管理,如下:

我们新增一个任务,把运行模式调整成GLUE,其他暂时不需要关注,我们这里的执行频率每十秒执行一次,如下:

接着打开这个任务的GLUE IDE,如下:

打开后进入到一个在线IDE的界面,在这里我们将需要定时执行的Service注入进来并将需要定时执行的方法在执行方法中调用即可,如下:

这时候就可以点击保存了,备注建议根据代码变更写,方便后续出问题了回滚,我这里是测试就不讲究了,如下:

保存成功后,我们老规矩可以先执行一次进行测试,如下:

提示执行成功,然后我们回到项目的控制台,可以看到执行记录,如下:

然后我们启动这个任务,观察控制台输出结果,每隔10秒输出日志,如下:

三、负载均衡策略

通常我们部署在线上的服务不止一个实例,在多实例的情况下,我们肯定是期望定义的定时任务不会重复执行,XXL-JOB当然已经帮我们做到了,我们在这里也不细究这里的原理,主要是看看它在这里的路由策略。1.准备工作

我们需要在本地启动多个demo实例进行测试,如下:

这里本地测试需要注意虚拟机配置除了服务的端口号还有执行器的端口号也要区分,如下:

回到调度中心的执行器管理页面,可以看到执行器的机器地址变成了两个实例,如下:

2.启动任务

回到任务管理页面,启动我们的那个测试任务,观察两个实例的控制台,如下:

可以看到只有一个机器上有执行记录,并没有重复执行,但是我们肯定不想让压力集中在一台机器上,就需要我们修改任务的路由策略,如下:

可以看到很多路由策略,我们可以根据自己的实际需求进行选择,这里我改成轮训策略,但需要注意的是:修改路由策略需要停止任务并重新启动,保存成功后,再次观察控制台,如下:

可以看到,现在是在两台机器之间轮训执行了,实现我们的需求。

四、小结

本篇简单介绍了XXL-JOB的GLUE模式与负载均衡策略,帮助各位读者对XXL-JOB的使用有了更多认识,下期作为本系列的最后一期讲讲任务如何实现分片。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
SpringBoot整合XXL-JOB【01】- 初识XXL-JOB
先来理解一下任务调度:就是在一个约定的特定时刻去执行任务的过程。举一个常见的场景:银行需要在每个用户的信用卡还款日前3天发送短信通知。而任务调度平台则可以让我们对这些任务进行统一的管理,比如开启或关闭特定的任务、修改任务的执行频率等等。
别惹CC
2025/01/13
3670
SpringBoot整合XXL-JOB【01】- 初识XXL-JOB
SpringBoot整合XXL-JOB【03】- 执行器的使用
要使用执行器,一方面要在调度中心里配置,另一方面就需要在项目中使用了,所以我们先新建一个SpringBoot的项目,如下:
别惹CC
2025/01/13
5380
SpringBoot整合XXL-JOB【03】-  执行器的使用
任务调度-分布式任务调度平台XXL-JOB
如果上述二种方式都不满足你的需求,我建议你尝试使用XXL-JOB或其他开源调度平台。
秋日芒草
2019/06/19
2.8K0
SpringBoot整合XXL-JOB【02】- 启动调度中心
使用的第一步自然就是获取源码,这里我分别贴出Github的地址:https://github.com/xuxueli/xxl-job/ 和Gitee的地址:https://gitee.com/xuxueli0323/xxl-job ,我使用Github去下载,如图:
别惹CC
2025/01/13
1240
SpringBoot整合XXL-JOB【02】- 启动调度中心
SpringBoot整合XXL-JOB【05】- 任务分片
首先在数据库里建一个测试的表,并mock一些数据进去,模拟业务中的“大表”。因为本身就是在模拟,也不讲究性能什么的,大家自己操作下就行。
别惹CC
2025/01/13
3040
SpringBoot整合XXL-JOB【05】-  任务分片
从简单到复杂学习任务调度(2)-xxl-job基本原理和使用
上一篇对Java层面提供的以及和Spring提供的任务调度方式有了一定的了解,也分析出了它们的弊端,不过学习它们还是很有必要的,因为任务调度机制的思想和这些类差不多,只不过一个功能强大的任务调度工具会额外添加很多功能,使其更加灵活,更加全面,更加可控,比如Timer类会使用TaskQueue来存储任务,TimerThread获取到的TimerTask总是最先执行的任务,是因为TimerQueue是一个最小堆,它会将最先执行的任务放在堆顶,然后按照时间顺序进行排序,而在xxl-job中,会有一个守护线程去扫描数据库,获取可执行的任务,然后根据此任务的一些配置去解析出此任务的调度方式。
小四的技术之旅
2023/03/02
2.1K0
从简单到复杂学习任务调度(2)-xxl-job基本原理和使用
xxl-job控制台执行任务getshell
首先需要明确的是,控制台getshell控制的不是调度中心的服务器,而是调度中心触发任务执行到任务执行器执行的shell反弹。
叔牙
2024/11/23
5030
xxl-job控制台执行任务getshell
XXL-JOB
Github 地址: https://github.com/xuxueli/xxl-job/ 。
ma布
2024/11/15
2010
XXL-JOB
分布式任务调度平台XXL-JOB,不了解一下?
任务调度是指基于给定的时间点,给定的时间间隔又或者给定执行次数自动的执行任务。我们可以思考一下在以下场景中,我们应该怎么实现:
Bug开发工程师
2019/12/05
1.3K0
xxl-job Vs ElasticJob,谁牛?
1. xxl-job 2. 运行 xxl-job 3. 开发定时任务 3.1 项目创建及配置 3.2 定时任务开发方式 4. 小结 前两天写了一篇文章介绍了一下 ElasticJob,有不少小伙伴强烈建议讲讲 xxl-job,其实 ElasticJob 本来就是一个引子,松哥本来就是想和大家分享 xxl-job 的(手动狗头。 1. xxl-job 松哥也在微信群里和小伙伴们讨论过各自到底用的是 xxl-job 还是 ElasticJob,讨论的结果就是,xxl-job 使用的人更多一些。 不说功能的优劣,
江南一点雨
2022/03/24
2K0
大师级教程: 零基础掌握xxl-job分布式任务调度 Job Scheduling
xxl-job是一款开源的分布式任务调度框架,它能够帮助你实现定时任务的调度和管理.
杨不易呀
2023/09/21
2.4K0
大师级教程: 零基础掌握xxl-job分布式任务调度 Job Scheduling
分布式任务调度框架XXL-JOB入门级教程
下载源码导入idea,源码地址:https://gitee.com/xuxueli0323/xxl-job.git
小熊学Java
2023/07/16
1.3K0
分布式任务调度框架XXL-JOB入门级教程
SpringBoot入门建站全系列(三十二)接入xxl-job分布式任务调度平台
XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。
品茗IT
2020/05/28
1.6K0
分布式任务调度利器—Xxl-job框架详解
近期开发中的功能中需要用到定时任务来做数据库的备份和文件的定时删除,所以调研了当前比较主流的几个定时任务框架,经过对比选定了今天要讲的xxl-job,所以这篇文章,我主要和大家分享一下xxl-job的学习总结,记录一下在分布式项目下如何优雅的使用xxl-job实现定时任务。
灰小猿
2024/05/25
28.8K0
分布式任务调度利器—Xxl-job框架详解
springboot整合xxl-job分布式定时任务【图文完整版】
今天小编就以现在比较火的分布式定时任务xxl-job,优点比较轻量级,但是从21年到现在没有比较大的更新! 现在最新的好像是2.4.0。
掉发的小王
2022/09/23
1.2K0
springboot整合xxl-job分布式定时任务【图文完整版】
8000字 + 25图探秘Xxl-Job核心架构原理
这里还是老样子,为了保证文章的完整性和连贯性,方便那些没有使用过的小伙伴更加容易接受文章的内容,快速讲一讲Xxl-Job中的概念和使用
三友的java日记
2023/12/04
3.2K0
8000字 + 25图探秘Xxl-Job核心架构原理
如何通过编码的方式手动触发xxl-job执行器
xxl-job是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展、开箱即用。我部门大部分定时任务调度都是基于xxl-job,诸如报表统计、定时数据同步等。
lyb-geek
2021/03/04
2.8K0
如何通过编码的方式手动触发xxl-job执行器
xxl-job【后端专题】
xxl-job-admin目录配置文件 application.properties
高大北
2022/11/14
7921
xxl-job【后端专题】
安全为先:xxl-job执行器安全改造
xxl-job分布式任务调度,分为调度中心和调度执行器,调度中心也就是xxl-job-admin负责调度任务的管理和触发,调度执行器一般由业务服务引入依赖按照规范实现响应的任务逻辑,主要是被动接收调度中心的指令触发本机业务逻辑的执行。
叔牙
2024/12/30
2561
安全为先:xxl-job执行器安全改造
springboot整合xxl-job 分布式任务调度
注意:调度中心支持集群部署,集群情况下各节点务必连接同一个mysql实例,如果mysql做主从,调度中心集群节点务必强制走主库
用户10125653
2022/11/10
1.3K0
springboot整合xxl-job 分布式任务调度
相关推荐
SpringBoot整合XXL-JOB【01】- 初识XXL-JOB
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验