xxl-job、Quartz、power-job、elastic-job对比选型

news2024/9/19 8:01:10

一、框架对比

1. Quartz

优点:稳定性和可扩展性好,适用于企业级应用;调度功能丰富,满足多种需求。

缺点:本身不提供原生的分布式支持,需要通过扩展或与其他组件结合来实现分布式任务调度;调度逻辑和执行逻辑通常并存于同一个项目中,可能影响系统性能。

Quartz文档

2. XXL-JOB(大众点评)

优点:
  • 简单易用:XXL-Job提供了简洁的API和可视化的管理界面,使得用户可以轻松地创建、管理和监控任务。
  • 功能强大:支持多种任务类型(定时任务、周期性任务、手动触发任务等),能够满足不同场景下的需求。
  • 高可靠:提供了多种容错机制,如任务失败重试、任务超时处理等,确保任务的可靠执行。
  • 分布式架构:支持分布式部署,能够支持大规模的任务调度需求,并且具有良好的扩展性和容错性。
缺点:
  • 中心化设计:虽然便于管理和维护,但可能存在单点故障的风险。
  • 弹性扩容相对较弱:需要手动进行节点的增加和删除,然后通过调度中心进行任务的重新分配,操作相对繁琐。
  • 官方只适配了mysql数据库,使用其他数据库需要修改使其兼容(实现起来不复杂)

xxl-job github源码icon-default.png?t=O83Ahttps://github.com/xuxueli/xxl-job

xxl-job gitee源码icon-default.png?t=O83Ahttps://gitee.com/xuxueli0323/xxl-job

视频教程icon-default.png?t=O83Ahttps://www.bilibili.com/video/BV1824y1G7vT/?spm_id_from=333.337.search-card.all.click&vd_source=9a54337f2c285aab0a68f68a2b0dabf8

XXL-JOB-2.4.0适配Oracle数据库icon-default.png?t=O83Ahttp://XXL-JOB-2.4.xn--0oracle-5j1ns36a34e5q6lrid

3. PowerJob

优点:
  • 无锁化设计:摒弃了传统调度框架基于数据库锁的设计,性能大幅度提升。
  • 丰富的任务类型:除了常见的API、CRON、固定频率、固定延迟外,还支持工作流和每日固定间隔等任务类型。
  • 灵活的执行配置:支持单机执行、广播执行、Map执行、MapReduce执行等多种执行方式。
  • 调度端不支持动态扩容
  • 数据库支持得比较多(使用spring jpa,适配mysql oracle mongdb等都支持)
  • 日志上报,整合ELK等
缺点:
  • 相对较新:可能在一些成熟度和社区支持方面不如其他老牌框架。文档少,管理端提示很少,使用感较差
  • 学习成本高:对于不熟悉其设计理念的开发者来说,可能需要一定的时间来适应和学习。
  • 框架非常重:支持很多其他业务功能

power-job 官网icon-default.png?t=O83Ahttp://www.powerjob.tech/

power-job 官方文档icon-default.png?t=O83Ahttps://www.yuque.com/powerjob/guidence/intro

4. Elastic-job(当当)

优点:
  • 无中心化设计:基于Quartz的数据库高可用方案,并增加了弹性扩容和数据分片的思路,使得任务调度更加灵活和可扩展。
  • 强大的弹性扩容能力:引进zookeeper注册中心,对比其他框架内嵌的服务发现,使用分布式思想将服务拆分,对于执行端、调度端压力减少,实现了自动的弹性扩容
  • 丰富的任务配置选项:如作业分片、负载均衡、故障转移等,提供了高度的灵活性和可配置性。实现高可用
缺点:
  • 系统架构复杂:由Elastic-Job-Lite和Elastic-Job-Cloud两个子项目组成,可能增加了部署和维护的复杂度。维护成本高
  • 学习成本高:对于初学者来说,理解和掌握其复杂的系统架构和配置可能需要一定的时间。

elastic-job 官网icon-default.png?t=O83Ahttps://shardingsphere.apache.org/elasticjob/index_zh.html

elastic-job 官方文档icon-default.png?t=O83Ahttps://shardingsphere.apache.org/elasticjob/current/cn/overview/

PowerJob 和Quartz、XXL-JOB对比:

二、技术选型建议

  • 不需要分布式支持的小项目选择Quartz
  • 简单任务调度,业务纯粹选择xxl-job
  • 如果需要额外的业务支持(工作流、每日固定间隔等),选择power-job
  • 如果并发量大,调度任务很多,分布式大集群需要动态扩容的选择elastic-job

        针对以上任务调度框架的优缺点分析,个人觉得中小型项目选择xxl-job已经够用,除了xxl-job本身只适配mysql,但是改造起来比较简单,后续可以根据需求适配Oracle、达梦等数据库。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

树莓派驱动之spi回环测试

开启spi sudo raspi-config选择Interfacing options,选择spi打开 lsmod可以看到spi_bcm2835 短接MISO和MOSI 编写回环代码spitest.c #include <stdio.h> #include <unistd.h> #include <stdlib.h> #include <fcntl.h> #include <string.h>…

第六部分:1---进程间通信,匿名管道

目录 进程间通信 进程间通信的目的&#xff1a; 进程间通信的本质&#xff1a; 管道&#xff1a; 管道的定义&#xff1a; 匿名管道 单向通信的管道通路&#xff1a; 进程和文件之间的解耦&#xff1a; 单向管道的读写端回收问题&#xff1a; 管道通信主要实现动态数…

Python VS Golng 谁更胜一筹?

今天我们聊聊Python和Golang这俩到底谁更胜一筹。 这个话题我已经在各种技术论坛上看到无数次了&#xff0c;每次都能引起一波热烈的讨论。作为一个多年写代码的老程序员&#xff0c;今天就站在我的角度&#xff0c;和大家掰扯掰扯这两个语言各自的优缺点。 1. 性能与并发模型…

283. 移动零(快慢指针)

算法分析&#xff1a; 如果数组没有0&#xff0c;快慢指针同步移动&#xff0c;元素会被自己复制&#xff1b;如果有0&#xff0c;快指针找到非零元素&#xff0c;将其复制到慢指针位置最终将剩余位置填充为0。 代码&#xff1a; class Solution {public void moveZeroes(i…

Android Studio 2024 安装、项目创建、加速、优化

文章目录 Android Studio安装Android Studio项目创建Android Studio加速修改GRADLE_USER_HOME位置减少C盘占用空间GRADLE加速 修改模拟器位置减少C盘占用空间参考资料 Android Studio安装 下载android studio download android-studio-2024.1.2.12-windows.exe 或者 android-…

11 - TCPClient实验

在上一个章节的UDP通信测试中&#xff0c;尽管通信的实现过程相对简洁&#xff0c;但出现了通信数据丢包的问题。因此&#xff0c;本章节将基于之前建立的WIFI网络连接&#xff0c;构建一个基础的TCPClient连接机制。我们利用网络调试助手工具来发送数据&#xff0c;测试网络通…

[PICO VR眼镜]眼动追踪串流Unity开发与使用方法,眼动追踪打包报错问题解决(Eye Tracking/手势跟踪)

前言 最近在做一个工作需要用到PICO4 Enterprise VR头盔里的眼动追踪功能&#xff0c;但是遇到了如下问题&#xff1a; 在Unity里面没法串流调试眼动追踪功能&#xff0c;根本获取不到Device&#xff0c;只能将整个场景build成APK&#xff0c;安装到头盔里&#xff0c;才能在…

【技术解析】消息中间件MQ:从原理到RabbitMQ实战(深入浅出)

文章目录 【技术解析】消息中间件MQ&#xff1a;从原理到RabbitMQ实战(深入浅出)1.简介1.1 什么是消息中间件1.2 传统的http请求存在那些缺点1.3 Mq应用场景有那些1.4 为什么需要使用mq1.5 Mq与多线程之间区别1.6 Mq消息中间件名词1.7主流mq区别对比1.8 Mq设计基础知识 2.Rabbi…

C++ | Leetcode C++题解之第415题字符串相加

题目&#xff1a; 题解&#xff1a; class Solution { public:string addStrings(string num1, string num2) {int i num1.length() - 1, j num2.length() - 1, add 0;string ans "";while (i > 0 || j > 0 || add ! 0) {int x i > 0 ? num1[i] - 0 …

大数据Flink(一百一十八):Flink SQL水印操作(Watermark)

文章目录 Flink SQL水印操作&#xff08;Watermark&#xff09; 一、为什么要有WaterMark 二、​​​​​​​​​​​​​​Watermark解决的问题 三、​​​​​​​​​​​​​​代码演示 Flink SQL水印操作&#xff08;Watermark&#xff09; 一、​​​​​​​为什么…

【数据结构】数据结构系列学习笔记——导航篇

一&#xff1a;概述 数据结构是计算机科学中的核心概念之一&#xff0c;是优化算法性能和资源利用率的关键。在软件开发和数据处理中&#xff0c;选择合适的数据结构对于算法的效率至关重要。数据结构的选择通常基于数据的使用模式&#xff0c;包括数据元素之间的关系、数据的存…

日志框架的使用

一、日志概述 日志&#xff1a;用来记录程序运行过程中的信息&#xff0c;并可以进行永久存储。 开发过程中可能会出现以下需求&#xff1a; 希望系统能记住某些数据是被谁操作的&#xff0c;比如被谁删除了&#xff1f;想分析用户浏览系统的具体情况&#xff0c;以便挖掘用…

【深度学习】深度学习模型的加密及解密方案及源码

本文摘要 本文主要根据自己遇到的情况,例如:对于yolo或paddle训练的模型文件,对外使用,不想要别人拿到我的模型文件随意乱用,此时就涉及到对模型文件进行加密与解密 深度学习模型的加密保护非常重要,尤其在商业应用场景下。常见的模型加密方法包括模型文件加密、加密硬件…

图像分割基本知识

计算机视觉和图像处理 Tensorflow入门深度神经网络图像分类目标检测图像分割 图像分割 一、目标分割1.1 图像分割的定义1.2 任务类型1.2.1 任务描述1.2.2 任务类型 二、语义分割2.1 FCN网络2.1.1网络结构 2.2 Unet网络 三、UNet案例3.1 数据集获取3.1.1 设置相关信息3.1.2 图像…

nature communications |多层次蛋白质组分析揭示弥漫型和肠型胃癌之间的分子多样性

文章信息 发表期刊&#xff1a;nature communications 发表日期&#xff1a;2023年2月14日 影响因子&#xff1a;14.7 研究背景 胃癌是世界上主要的癌症类型之一。弥漫型胃癌(DGC)和肠型胃癌(IGC)是胃癌(GC)的主要组织学类型&#xff0c;DGC呈分散的细胞组织&#xff0c;黏…

比特币10年价格数据(2014-2024)分析(进阶2_时间序列分析)

数据入口&#xff1a;【每周挑战】比特币10年价格数据可视化和量化分析 - Heywhale.com 本数据集包含 2014 - 2024 的比特币美元价格数据&#xff0c;具体包含比特币每日的开盘价、最高价、最低价、收盘价以及成交量等关键信息。数据说明如下&#xff1a; 字段说明Date日期&a…

iPhone 16系列:摄影艺术的全新演绎,探索影像新境界

在科技的浪潮中&#xff0c;智能手机摄影功能的进化从未停歇。 苹果公司即将推出的iPhone 16系列&#xff0c;以其卓越的相机升级和创新特性&#xff0c;再次站在了手机摄影的前沿。 从硬件到软件&#xff0c;从拍照体验到图像处理&#xff0c;iPhone 16系列都展现了其在移动…

camtasia2024绿色免费安装包win+mac下载含2024最新激活密钥

Hey, hey, hey&#xff01;亲爱的各位小伙伴&#xff0c;今天我要给大家带来的是Camtasia2024中文版本&#xff0c;这款软件简直是视频制作爱好者的福音啊&#xff01; camtasia2024绿色免费安装包winmac下载&#xff0c;点击链接即可保存。 先说说这个版本新加的功能吧&#…

Mapsui:一个 .NET 开源的地图组件库

前言 今天大姚给大家分享一个.NET开源&#xff08;MIT License&#xff09;、免费、同时支持多平台框架&#xff08;MAUI、WPF、Avalonia、Uno、Blazor、WinUI、Eto、.NET Android 和 .NET iOS&#xff09;地图组件库&#xff1a;Mapsui。 项目源代码 支持的UI框架的NuGet包 创…

华为OD机试 - 查字典(Python/JS/C/C++ 2024 E卷 100分)

华为OD机试 2024E卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试真题&#xff08;Python/JS/C/C&#xff09;》。 刷的越多&#xff0c;抽中的概率越大&#xff0c;私信哪吒&#xff0c;备注华为OD&#xff0c;加入华为OD刷题交流群&#xff0c;…