工具篇--分布式定时任务 Xxl-job 与 ElasticJob的对比

文章目录

  • 前言
  • 一、架构:
  • 二、作业:
  • 三、日志记录:
  • 总结


前言

本文对分布式调度任务 Xxl-job 与 ElasticJob的对比 进行介绍。


一、架构:

Xxl-job : cs 架构 ,分为客户端和服务端,是有中心的架构,客户端为执行job 任务的执行器实例;服务端可以进行单独的集群部署,服务端控制任务的触发,以及任务的分配,故障转移,日志记录等;服务端承接了大部分的工作;

在这里插入图片描述

ElasticJob: cs 架构,分为客户端和服务端,是无中心的架构;客户端为执行job 任务的执行器实例;服务端为集群的zookeeper ,其中zookeeper 保存注册任务的实例,任务的配置项,以及负责leader 的选举;任务具体有哪个实例去执行,是由leader (也是一个job 执行的实例)进行的分配; 任务的触发,以及任务的分配,故障转移,日志记录等都是由 elasticjob-lite-core 进行管理,客户端承接了大部分的工作;
在这里插入图片描述

二、作业:

Xxl-job :作业分为 广播作业 和 某个实例单独作业;其中广播作业在任务达到时间被触发时,会被发送到所有有效的实例;某个实例单独作业 只会被发送到某个实例中;

xxl-job 任务路由策略:
在这里插入图片描述

ElasticJob:作业分为 简单作业和 流式的作业,其中简单作业同xxl-job 相同,当任务达到时间被触发时,leader 会选择某个节点进行作业;与简单作业不同 流式作业 提供了两个方法当每一次任务触发,只要fetchData 能返回数据,则当前这次任务就会一直调用 processData 进行作业,直到 fetchData 返回为null 或者集合为空;

ElasticJob 注册到zookeeper 的任务实例:
在这里插入图片描述

ElasticJob 中有分片的概念,来弥补某个实例单独作业 其它实例空闲,可以将任务定义分片数量,分片数量可以大于job 实例数,从而提高并发性能;当某个分片接收到任务是,可以根据当前分片得到对应的参数,从而执行不同的业务逻辑处理;

import lombok.extern.slf4j.Slf4j;
import org.apache.shardingsphere.elasticjob.api.ShardingContext;
import org.apache.shardingsphere.elasticjob.simple.job.SimpleJob;
import org.springframework.stereotype.Component;@Slf4j
@Component
public class MyJob implements SimpleJob {@Overridepublic void execute(ShardingContext shardingContext) {// 分片参数 0=text,1=image,2=radio,3=vedioString  shardingParameter= shardingContext.getShardingParameter();String  jobParameter= shardingContext.getJobParameter();log.debug("job 执行 error,job名称:{},分片数量:{},分片:{},分片参数:{},jobParamer:{}", shardingContext.getJobName(), shardingContext.getShardingTotalCount(),shardingContext.getShardingItem(), shardingParameter,jobParameter);if ("text".equals(jobParameter)) {// do something by sharding}switch (shardingContext.getShardingItem()) {case 0:// do something by sharding item 0break;case 1:// do something by sharding item 1break;case 2:// do something by sharding item 2break;// case n: ...}}
}

三、日志记录:

Xxl-job : 通过http 请求通信,在服务端记录job 的执行情况,并生成日志记录,展现日志的执行情况;
在这里插入图片描述

ElasticJob: 需要单独在job 里定义 日志记录的数据源,从而在客户端的数据可以记录日志,需要部署对应 ElasticJob-Console 登陆后,配置对应的数据源,从而可以得到job 的执行情况;
在这里插入图片描述


总结

综合来看,Xxl-job 更适合于在 Spring 生态圈中使用的项目,提供了简洁易用的任务管理界面;而 ElasticJob 则更加灵活,功能更为丰富,适用范围更广泛,可以满足复杂的分布式定时任务需求。

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

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

相关文章

Apache Doris 2.1.0 版本发布:开箱盲测性能大幅优化,复杂查询性能提升 100%

亲爱的社区小伙伴们,我们很高兴地向大家宣布,在 3 月 8 日我们引来了 Apache Doris 2.1.0 版本的正式发布,欢迎大家下载使用。 在查询性能方面, 2.1 系列版本我们着重提升了开箱盲测性能,力争不做调优的情况下取得较好…

XIAO ESP32S3部署Edge Impulse模型

在上一篇文章中我们介绍了如何使用edge impulse训练一个图片分类模型并导出arduino库文件。在这篇文章中我们将介绍如何在esp32s3中部署这个训练好的图片分类模型。 添加进Arduino库 有两种方法将下载的文件添加进Arduino库。 在Arduino IDE程序中,转到项目选项卡…

YOLOv9改进策略:注意力机制 | EMA:基于跨空间学习的高效多尺度注意力,效果优于ECA、CBAM、CA

💡💡💡本文改进内容:加入EMA注意力,一种基于跨空间学习的高效多尺度注意力,效果优于ECA、CBAM、CA等经典注意力。 yolov9-c-EMA summary: 970 layers, 51011154 parameters, 51011122 gradients, 238.9 GF…

C语言例:表达式(a=2,3),a+1的值

题目&#xff1a;设int a; 则表达式(a2,3),a1的值 #include<stdio.h> int main(void) {int a0;int b;int c;b (a2,4);c (a2,3),a1;printf("a1%d\n",a1); //a1 3;printf("a2,4的值为&#xff1a;%d\n",b); //a2,4的值为&…

如何实现高效的Web自动化测试?

随着互联网的快速发展&#xff0c;Web应用程序的重要性也日益凸显。为了保证Web应用程序的质量和稳定性&#xff0c;Web自动化测试成为必不可少的一环。然而&#xff0c;如何实现高效的Web自动化测试却是一个值得探讨的课题。 首先&#xff0c;选择合适的测试工具是关键。市面…

Docker容器化技术(使用Docker搭建论坛)

第一步&#xff1a;删除容器镜像文件 [rootlocalhost ~]# docker rm -f docker ps -aq b09ee6438986 e0fe8ebf3ba1第二步&#xff1a;使用docker拉取数据库 [rootlocalhost ~]# docker run -d --name db mysql:5.7 02a4e5bfffdc81cb6403985fe4cd6acb0c5fab0b19edf9f5b8274783…

将一个教材上的“在线教学视频”网站源码修改成电子商城网站源码

将一个教材上的“在线教学视频”网站源码修改成电子商城网站源码。 这两种网站有很多相似的地方。修改网站源码&#xff0c;开发速度会快很多。目前已经完成了30%。已花了5天时间。 该网站源码是单商家版&#xff0c;因此修改以后将产生一个单商家版的电子商城网站源码。 需…

Clickhouse MergeTree 原理(一)

作者&#xff1a;俊达 MergeTree是Clickhouse里最核心的存储引擎。Clickhouse里有一系列以MergeTree为基础的引擎&#xff08;见下图&#xff09;&#xff0c;理解了基础MergeTree&#xff0c;就能理解整个系列的MergeTree引擎的核心原理。 本文对MergeTree的基本原理进行介绍…

密码保护小贴士:如何应对常见的网络钓鱼攻击?

网络钓鱼攻击是一种常见的网络欺诈手段&#xff0c;针对个人隐私和财产安全构成威胁。以下是一些密码保护的小贴士&#xff0c;帮助您应对常见的网络钓鱼攻击&#xff1a; 1.谨慎点击链接&#xff1a;收到来历不明的邮件、短信或社交媒体消息时&#xff0c;不要轻易点击其中的…

一体机电脑辐射超标整改

电脑一体机是目前台式机和笔记本电脑之间的一个新型的市场产物&#xff0c;它将主机部分、显示器部分整合到一起的新形态电脑&#xff0c;该产品的创新在于内部元件的高度集成。随着无线技术的发展&#xff0c;电脑一体机的键盘、鼠标与显示器可实现无线链接&#xff0c;机器只…

云服务器租用4核16G配置价格表,阿里云和腾讯云费用价格对比

4核16G服务器租用优惠价格26元1个月&#xff0c;腾讯云轻量4核16G12M服务器32元1个月、96元3个月、156元6个月、312元一年&#xff0c;阿腾云atengyun.com分享4核16服务器租用费用价格表&#xff0c;阿里云和腾讯云详细配置报价和性能参数表&#xff1a; 腾讯云4核16G服务器价…

STM32第九节(中级篇):RCC——时钟树讲解(第一节)

目录 前言 STM32第九节&#xff08;中级篇&#xff09;&#xff1a;RCC——时钟树讲解 时钟树主系统时钟讲解 HSE时钟 HSI时钟 锁相环时钟 系统时钟 SW位控制 HCLK时钟 PCLKI时钟 PCLK2时钟 RTC时钟 MCO时钟输出 6.2.7时钟安全系统(CSS&#xff09; 小结 前言 从…