6大分布式定时任务对比 就这?? 给你盘的明明白白
分布式定时任务简介
把分散的,可靠性差的计划任务纳入统一的平台,并实现集群管理调度和分布式部署的一种定时任务的管理方式,叫做分布式定时任务。
常见开源方案
- elastic-job
- xxl-job
- quartz
- saturn
- opencron
- antares
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-lite 不支持动态添加作业,此处仅贴上elastic-job-Cloud架构图
xxl-job
由个人开源的一个轻量级分布式任务调度框架 ,主要分为 调度中心和执行器两部分 , 调度中心在启动初始化的时候,会默认生成执行器的RPC代理
对象(http协议调用), 执行器项目启动之后, 调度中心在触发定时器之后通过jobHandle 来调用执行器项目里面的代码,核心功能和elastic-job差不多
,同时技术文档比较完善
系统架构图:
quartz
quartz 的常见集群方案如下,通过在数据库中配置定时器信息, 以数据库悲观锁的方式达到同一个任务始终只有一个节点在运行,
优点:
- 保证节点高可用 (HA), 如果某一个几点挂了, 其他节点可以顶上
缺点:
- 同一个任务只能有一个节点运行,其他节点将不执行任务,性能低,资源浪费
- 当碰到大量短任务时,各个节点频繁的竞争数据库锁,节点越多这种情况越严重。性能会很低下
- quartz 的分布式仅解决了集群高可用的问题,并没有解决任务分片的问题,不能实现水平扩展
Saturn
Saturn是唯品会在github开源的一款分布式任务调度产品。它是基于当当elastic-job 1.0版本来开发的,其上完善了一些功能和添加了一些新的feature。
亮点:
- 支持多语言开发 python、Go、Shell、Java、Php。
- 管理控制台和数据统计分析更加完善
缺点:
- 技术文档较少 , 该框架是2016年由唯品会的研发团队基于elastic-job开发而来的
opencron
一个功能完善真正通用的linux定时任务调度定系统,满足多种场景下各种复杂的定时任务调度,同时集成了linux实时监控,webssh,提供一个方便管理定时任务的平台
缺点:仅支持 kill任务, 现场执行,查询任务运行状态 等, 主要功能是着重于任务的修改和查询上。不能动态的添加任务以及任务分片。
antares
优点:
- 一个任务仅会被服务器集群中的某个节点调度,调度机制基于成熟的 quartz
- 并行执行 , 用户可通过对任务预分片,有效提升任务执行效率
- 失效转移
- 弹性扩容,在任务运行时,可以动态的加机器
- 友好的管理控制台
缺点:
- 不能动态的添加任务,仅能在控制台对任务进行触发,暂停,删除等操作
- 文档不多,开源社区不够活跃
系统架构图如下:
3. 比较
此处列出了几个代表性的开源产品
feature | quartz | elastic-job-cloud | xxl-job | antares | opencron |
---|---|---|---|---|---|
依赖 | mysql | jdk1.7+, zookeeper 3.4.6+ ,maven3.0.4+ ,mesos | mysql ,jdk1.7+ , maven3.0+ | jdk 1.7+ , redis , zookeeper | jdk1.7+ , Tomcat8.0+ |
HA | 多节点部署,通过竞争数据库锁来保证只有一个节点执行任务 | 通过zookeeper的注册与发现,可以动态的添加服务器。支持水平扩容 | 集群部署 | 集群部署 | — |
任务分片 | — | 支持 | 支持 | 支持 | — |
文档完善 | 完善 | 完善 | 完善 | 文档略少 | 文档略少 |
管理界面 | 无 | 支持 | 支持 | 支持 | 支持 |
难易程度 | 简单 | 较复杂 | 简单 | 一般 | 一般 |
公司 | OpenSymphony | 当当网 | 个人 | 个人 | 个人 |
高级功能 | — | 弹性扩容,多种作业模式,失效转移,运行状态收集,多线程处理数据,幂等性,容错处理,spring命名空间支持 | 弹性扩容,分片广播,故障转移,Rolling实时日志,GLUE(支持在线编辑代码,免发布),任务进度监控,任务依赖,数据加密,邮件报警,运行报表,国际化 | 任务分片, 失效转移,弹性扩容 , | 时间规则支持quartz和crontab ,kill任务, 现场执行,查询任务运行状态 |
缺点 | 没有管理界面,以及不支持任务分片等。不适用于分布式场景 | 需要引入zookeeper , mesos, 增加系统复杂度, 学习成本较高 | 调度中心通过获取 DB锁来保证集群中执行任务的唯一性, 如果短任务很多,随着调度中心集群数量增加,那么数据库的锁竞争会比较厉害,性能不好。 | 不支持动态添加任务 | 不适用于分布式场景 |
使用企业 | 大众化产品,对分布式调度要求不高的公司大面积使用 | 36氪,当当网,国美,金柚网,联想,唯品会,亚信,平安,猪八戒 | 大众点评,运满满,优信二手车,拍拍贷 | — | — |
http://www.taodudu.cc/news/show-3472442.html
相关文章:
- Quartz定时器与定时任务知识概括
- 全云化架构(十一):分布式定时任务框架对比
- 互联网日报 | 7月6日 星期二 | 雷军赠予每位金山员工600股股票;BOSS直聘等被网络安全审查;贝索斯正式卸任亚马逊CEO...
- 2021年隐私安全
- 同城货运:既是矿坑也是火坑
- 数据伦理、国家安全与海外上市: 基于滴滴的案例研究
- 被称为“中国货运版 Uber”的货车帮,看它如何领跑互联网 + 物流
- “货运版滴滴”货拉拉又获巨额融资,同城货运市场生变?
- 找全了!一二线城市知名IT互联网公司名单(更新版)
- 智慧物流车联网生态远程管理终端设备助力百万中小企业风控管理
- 3D透视投影矩阵推导,内含推导细节
- Python 3D函数图形投影到2D坐标轴上
- 全息投影技术,沉浸式全息投影,裸眼3D解决方案
- CATIA三维设计教程:如何使用3D投影功能?
- Origin(Pro):3D图-投影、垂线、标签
- 全息投影与裸眼3D
- Unity3D地面云层投影实时绘制
- 3D Vision--将点云投影至平面
- 中望3D2022 X 草图命令——投影曲线(投影点)
- matlab 三维图像投影,matlab – 3D平面上的三维灰度体积投影
- 3D|投影矩阵
- 3D投影变换(含透视投影Perspective Projection)
- 计算机视觉 图像形成 几何图形和变换 3D到2D投影
- 3d点投影到2d屏幕,矩阵计算
- python绘制图形微格课_智慧职教MOOCPython程序设计章节测试答案
- 【渝粤题库】国家开放大学2021春2507学前儿童艺术教育(音乐)题目
- 拎屏就走,此处需@腾讯叮当!
- 新版中日交流标准日本语.单词
- 渝粤题库国家开放大学 学前儿童科学教育 期末考试复习资料
- 《辩证行为疗法》摘录 -- 情绪调节篇
6大分布式定时任务对比 就这?? 给你盘的明明白白相关推荐
- quartz 分布式_6大分布式定时任务对比
作者 | sharedCode 来源 | blog.csdn.net/u012394095/article/details/79470904 分布式定时任务简介 把分散的,可靠性差的计划任务纳入统一的 ...
- 6大分布式定时任务对比
作者 | sharedCode 来源 | blog.csdn.net/u012394095/article/details/79470904 分布式定时任务简介 把分散的,可靠性差的计划任务纳入统一的 ...
- php面试题 优信二手车_分布式定时任务对比 - sharedCode的个人空间 - OSCHINA - 中文开源技术交流社区...
分布式定时任务 1. 什么是分布式定时任务 把分散的,可靠性差的计划任务纳入统一的平台,并实现集群管理调度和分布式部署的一种定时任务的管理方式.叫做分布式定时任务. 2. 常见开源方案 elastic ...
- 全云化架构(十一):分布式定时任务框架对比
分布式定时任务框架对比 把分散的,可靠性差的计划任务纳入统一的平台,并实现集群管理调度和分布式部署的一种定时任务的管理方式.叫做分布式定时任务. 常见的分布式定时任务平台有elastic-job , ...
- redis实现轮询算法_Dcron:基于redis与一致性哈希算法的分布式定时任务库
背景 最近项目中的定时任务越来越多,为了防止任务重复执行曾经使用过的方案: 只启用了一个节点. 固定循环间隔,使用分布式事务锁. 部署一套分布式任务调度系统. 方案一 没有容错机制,当单个节点宕机,所 ...
- 几种主流的分布式定时任务,你知道哪些?
欢迎关注方志朋的博客,回复"666"获面试宝典 单点定时任务 JDK原生 自从JDK1.5之后,提供了ScheduledExecutorService代替TimerTask来执行定 ...
- 聊聊分布式定时任务中间件架构及其实现--转
原文来自微信公众号:聊聊架构 在互联网应用中,各式各样的定时任务存于系统各个角落.我们希望由一个平台统一将这些作业管理起来.通过这个系统,作业的宕机.崩溃等状态就可收入运维同学掌控,直接对接报警系统, ...
- 基于spring+quartz的分布式定时任务框架
http://www.cnblogs.com/aaronfeng/p/5537177.html 问题背景 我公司是一个快速发展的创业公司,目前有200人,主要业务是旅游和酒店相关的,应用迭代更新周期比 ...
- 【xxl-job】轻松实现分布式定时任务demo实例
[项目描述] 前段时间专门独立了一个spring boot服务,用于做和第三方erp系统的对接工作.此服务的第一个需求工作就是可以通过不同的规则,设置不同的定时任务,从而获取erp系统的商品数据.所以 ...
最新文章
- Android 百度地图 SDK v3.0.0 (二) 定位与结合方向传感器
- 数据结构之表(5)栈的顺序实现
- MVC根据CheckBox的Value值选中对应的复选框及获取选中的Value值
- 中国人民公安大学网络对抗技术作业一
- mysql mysqlslap压力测试用例
- python中时间的加n和减n运算
- C++ and Java template class and function 模板类和模板函数
- mac的obs录制不到全屏
- windows切屏快捷键
- JS 平方 开方 笔记
- AcWing1402. 星空之夜
- About all the awsome websites
- php设置系统时区,php 设置时区
- 浅谈——服务器虚拟化超融合存储
- 公司债个人投资者认购门槛或为1000元
- mac 版webstorm 破解终极版本
- openstack和云桌面杂记
- centos 7 强制重置root密码
- 手写原笔迹输入_原笔迹手写软件 - 随意写 V1.1
- 使用opencv将jpg转png
热门文章
- Java读取Excel表格中的数据
- android 中的设计模式
- android手机怎么拆机,韩雪拆安卓手机:十分钟熟练拆机/详解每个部件
- ISP路由表分发中的AS与BGP
- 5月18日德玛西亚服务器怎么维护,LOL5.18测试服更新内容是什么_LOL5月18日测试服更新内容介绍_游戏堡...
- 1386:打击犯罪(black)
- iOS传感器:使用陀螺仪完成一个小球撞壁的小游戏
- 攻防世界WEB练习 | easyphp
- Vim实用技巧_2.普通模式和插入模式
- R语言使用epiDisplay包的summ函数计算dataframe数据中的指定数据列在分组变量下的统计量(样本数、均值、中位数、标准差、最大值、最小值)、可视化一个按照分类变量绘制的有序点图