分布式调度解决方案之elastic-job

elastic-job

elastic-job 是由当当网基于quartz 二次开发之后的分布式调度解决方案 , 由两个相对独立的子项目Elastic-Job-Lite和Elastic-Job-Cloud组成 。

Elastic-Job-Lite定位为轻量级无中心化解决方案,使用jar包的形式提供分布式任务的协调服务。

Elastic-Job-Cloud使用Mesos + Docker(TBD)的解决方案,额外提供资源治理、应用分发以及进程隔离等服务

亮点:

基于quartz 定时任务框架为基础的,因此具备quartz的大部分功能使用zookeeper做协调,调度中心,更加轻量级支持任务的分片支持弹性扩容 , 可以水平扩展 , 当任务再次运行时,会检查当前的服务器数量,重新分片,分片结束之后才会继续执行任务失效转移,容错处理,当一台调度服务器宕机或者跟zookeeper断开连接之后,会立即停止作业,然后再去寻找其他空闲的调度服务器,来运行剩余的任务提供运维界面,可以管理作业和注册中心。

elastic-job结合了quartz非常优秀的时间调度功能,并且利用ZooKeeper实现了灵活的分片策略。除此之外,还加入了大量实用的监控和管理功能,

以及其开源社区活跃、文档齐全、代码优雅等优点,是分布式任务调度框架的推荐选择。

elastic-job开源项目的10项特性

[强烈推荐-写的很好]新一代分布式任务调度框架:当当elastic-job开源项目的10项特性
参考URL: https://blog.51cto.com/14409778/2422455

elastic-job与quartz集群对比

其实quartz的缺点,就是elastic-job优化弥补的点。
quartz缺点:

  1. 同一个任务只能有一个节点运行,其他节点将不执行任务,性能低,资源浪费

  2. 当碰到大量短任务时,各个节点频繁的竞争数据库锁,节点越多这种情况越严重。性能会很低下

  3. quartz 的分布式仅解决了集群高可用的问题,并没有解决任务分片的问题,不能实现水平扩展

网上一些信息:
elastic-job替换掉原来的spring+quartz的定时任务调度
参考URL: https://blog.csdn.net/gaoshili001/article/details/79126053

我想用quartz实现定时任务集群的时候,遇到过很坑的问题就是所有做集群的机器都必须保证时间的一致性,要不然有很多机器的项目是起不来的;除此之外,使用quartz很容易造成数据库死锁的问题,虽然我已经降低了quartz的数据库事务级别,但还是有这种情况发生,所以用过一段时间之后,新的项目就用了elastic-job。

总结: 虽然Quartz可以基于数据库实现作业的高可用,但缺少分布式并行执行作业的功能。

Elastic-Job运维监控

分布式定时任务Elastic-Job框架在SpringBoot工程中的应用实践(二)
参考URL: http://www.imooc.com/article/274236

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

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

相关文章

Confluence 的文章导入到 YouTrack KB 中

YouTrack 是有一个 KB 的,我们可以吧 Confluence 的文章全部导入到 YouTrack 的 KB 中。 首先,你需要具有管理员权限,然后选择导入。 然后可以在打开的界面中新增一个导入。 在新增导入中输入 Confluence 在随后的界面中输入你 Confluence …

【Hexo博客|Fluid主题】实现链接卡片效果

文章目录 前言一、CardLink库二、配置步骤1. 添加静态js文件2. 使库文件生效3. 编写启用CardLink4. 查看效果效果与前面一致。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/img_convert/06e0630f994d4d67a90e18e291c3fdc5.png#pic_center) 总结 前言 今天在阅读Github…

格子表单GRID-FORM | 嵌套子表单与自定义脚本交互

格子表单/GRID-FORM已在Github 开源,如能帮到您麻烦给个星🤝 GRID-FORM 系列文章 基于 VUE3 可视化低代码表单设计器嵌套表单与自定义脚本交互 新版本功能 🎉 不觉间,GRID-FORM 已经开源一年(2023年1月29日首次提交…

通过FileZilla配置FTP

FileZilla服务端的安装 在虚拟机里安装FileZilla服务器 FileZilla的官网 下载一个客户端和一个服务端的FileZilla 如果已经有了一个客户端,可以不下用载。 FileZilla的配置 说明一下:通过FileZilla配置FTP有两种模式,我们先用被动模式 下载…

使用CompletableFuture实现并发计算-结合实例

一、什么是CompletableFuture? CompletableFuture 是Java 8引入的一个强大的并发工具类,它是Future接口的扩展实现。它提供了更丰富的异步编程模型和功能,允许开发者以非阻塞的方式处理异步计算的结果,并且可以将多个异步任务链式…

GoZero微服务个人探究之路(九)api文件编写总结

参考来源go-zero官方文档https://go-zero.dev/docs/tutorials 前言 go-zero是目前star最多的go语言微服务框架,api 是 go-zero特殊的语言,类型文件,go-zero自带的goctl可以通过.api文件生成http服务代码 api文件内容编写 不可使用关键字 …

Datawhale 组队学习之大模型理论基础 Task7 分布式训练

第8章 分布式训练 8.1 为什么分布式训练越来越流行 近年来,模型规模越来越大,对硬件(算力、内存)的发展提出要求。因为内存墙的存在,单一设持续提高芯片的集成越来越困难,难以跟上模型扩大的需求。 为了…

MATLAB|融合需求侧虚拟储能系统的楼宇微网优化调度¥29

目录 主要内容 模型研究 一、虚拟储能特征 二、楼宇微网虚拟储能 结果一览 下载链接 主要内容 该模型以楼宇为研究对象,围绕夏季制冷负荷,利用楼宇的蓄热特性,实现融合需求侧虚拟储能系统的楼宇微网优化调度模型,…

带【科技感】的Echarts 图表

Echarts脚本在线地址 https://cdn.jsdelivr.net/npm/echarts5.4.3/dist/echarts.min.js 引入Echarts 脚本后粘贴代码 vue2 代码&#xff1a; <template><div><div ref"col-2-row-2" class"col-2-row-2"></div></div> <…

研究性学习:科技发展调查

1. 课题名称 科技发展调查 2. 起止时间 起始时间:2024年1月25日 结束时间:2024年2月20日 3. 项目组成员 组长:张三组员:李四、王五校内指导教师:杨老师校外指导教师:科技专家刘教授4. 组员分工情况 搜集整理资料: 张三:负责搜集西安市高铁领域的科技发展情况。李四…

力扣题目训练(1)

2024年1月25日力扣题目训练 2024年1月25日力扣题目训练225. 用队列实现栈257. 二叉树的所有路径258. 各位相加81. 搜索旋转排序数组 II82. 删除排序链表中的重复元素 II30. 串联所有单词的子串 2024年1月25日力扣题目训练 2024年1月25日开始进行编程训练&#xff0c;今天主要是…

《统计学习方法:李航》笔记 从原理到实现(基于python)-- 第4章 朴素贝叶斯法

文章目录 第4章 朴素贝叶斯法4.1 朴素贝叶斯法的学习与分类4.1.1 基本方法4.1.2 后验概率最大化的含义4.2 朴素贝叶斯法的参数估计4.2.1 极大似然估计4.2.2 学习与 算法4.2.3 贝叶斯估计代码实践GaussianNB 高斯朴素贝叶斯scikit-learn实例scikit-learn:伯努利模型和多项式模型…

网安渗透攻击作业(1)

实现负载均衡 第一步&#xff1a;安装依赖 sudo apt insta11 libgd-dev 第二步&#xff1a;下载nginx wget http://nginx.org/download/nginx-1.22.1.tar.gz 第三步&#xff1a;对nginx进行解压 tar -zvxf nginx-1.22.1.tar.g2 第四步&#xff1a;编译安装nginx cd ngi…

通达信动量振荡指标公式(AO),反映市场驱动力的变化

动量振荡指标AO(Awesome Oscillator)衡量的是最近5根K线的动量与过去34根K线的动量对比&#xff0c;反映市场驱动力的变化。 一、动量振荡指标公式&#xff08;副图&#xff09; 动量振荡指标AO计算公式&#xff1a; 1、计算中间价&#xff0c;将最高价和最低价的和除以2&…

浅析HTTP协议

首先&#xff0c;前端请求后端数据&#xff0c;后端响应数据给前端&#xff0c;这是我们大家都知道的&#xff0c;那其中所涉及到的数据传输协议又是什么呢&#xff1f;这个传输规范就是我们大名鼎鼎的HTTP协议&#xff01; 什么是HTTP协议&#xff1f; HTTP&#xff08;超文本…

SqlAlchemy使用教程(六) -- ORM 表间关系的定义与CRUD操作

SqlAlchemy使用教程(一) 原理与环境搭建SqlAlchemy使用教程(二) 入门示例及编程步骤SqlAlchemy使用教程(三) CoreAPI访问与操作数据库详解SqlAlchemy使用教程(四) MetaData 与 SQL Express Language 的使用SqlAlchemy使用教程(五) ORM API 编程入门 本章内容&#xff0c;稍微有…

Java链表(1)

&#x1f435;本篇文章将对单链表进行讲解&#xff0c;模拟实现单链表中常见的方法 一、什么是链表 链表是一种逻辑结构上连续而物理结构上不一定连续的线性表&#xff0c;链表由一个一个节点组成&#xff1a; 每一个节点中都由数据域&#xff08;val&#xff09;和指针域&…

实战EDA电子设计自动化经典入门模型VHDL代码编写(含代码解释)上篇--状态机,逻辑设计:Y=AB+C

前言 电子设计自动化&#xff08;EDA&#xff09;&#xff1a; 定义&#xff1a;EDA是用于设计和开发复杂的电子系统&#xff08;如集成电路&#xff09;和印刷电路板的软件工具集合。这些工具通常用于设计电路、进行仿真测试、分析电路行为以及协助制造过程。应用&#xff1a;…

机器人学论文——智能施药机器人调研报告

目录 摘 要 Abstract 第一章&#xff1a;引言 1.1研究背景 1.2 研究意义 1.3文章架构 第二章&#xff1a;智能施药机器人发展现状 2.1引言 2.2 大田智能施药机器人发展现状 2.3 果园智能施药机器人发展现状 2.4 设施农业智能施药机器人发展现状 第三章&#xff1a;智能施药机器…

【知识---Linux 有哪些版本】

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言Ubuntu&#xff1a;Debian&#xff1a;Fedora&#xff1a;CentOS&#xff1a;openSUSE&#xff1a;Arch Linux&#xff1a;Gentoo&#xff1a;Slackware&#x…