分布式定时任务简介

把分散的,可靠性差的计划任务纳入统一的平台,并实现集群管理调度和分布式部署的一种定时任务的管理方式,叫做分布式定时任务。

常见开源方案

  • 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)的解决方案,额外提供资源治理、应用分发以及进程隔离等服务

亮点:

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

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

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

由于elastic-job-lite 不支持动态添加作业,此处仅贴上elastic-job-Cloud架构图

xxl-job

由个人开源的一个轻量级分布式任务调度框架 ,主要分为 调度中心和执行器两部分 , 调度中心在启动初始化的时候,会默认生成执行器的RPC代理

对象(http协议调用), 执行器项目启动之后, 调度中心在触发定时器之后通过jobHandle 来调用执行器项目里面的代码,核心功能和elastic-job差不多

,同时技术文档比较完善

系统架构图:

quartz

quartz 的常见集群方案如下,通过在数据库中配置定时器信息, 以数据库悲观锁的方式达到同一个任务始终只有一个节点在运行,

优点:

  1. 保证节点高可用 (HA), 如果某一个几点挂了, 其他节点可以顶上

缺点:

  1. 同一个任务只能有一个节点运行,其他节点将不执行任务,性能低,资源浪费
  2. 当碰到大量短任务时,各个节点频繁的竞争数据库锁,节点越多这种情况越严重。性能会很低下
  3. quartz 的分布式仅解决了集群高可用的问题,并没有解决任务分片的问题,不能实现水平扩展

Saturn

Saturn是唯品会在github开源的一款分布式任务调度产品。它是基于当当elastic-job 1.0版本来开发的,其上完善了一些功能和添加了一些新的feature。

亮点:

  1. 支持多语言开发 python、Go、Shell、Java、Php。
  2. 管理控制台和数据统计分析更加完善

缺点:

  1. 技术文档较少 , 该框架是2016年由唯品会的研发团队基于elastic-job开发而来的

opencron

一个功能完善真正通用的linux定时任务调度定系统,满足多种场景下各种复杂的定时任务调度,同时集成了linux实时监控,webssh,提供一个方便管理定时任务的平台

缺点:仅支持 kill任务, 现场执行,查询任务运行状态 等, 主要功能是着重于任务的修改和查询上。不能动态的添加任务以及任务分片。

antares

优点:

  1. 一个任务仅会被服务器集群中的某个节点调度,调度机制基于成熟的 quartz
  2. 并行执行 , 用户可通过对任务预分片,有效提升任务执行效率
  3. 失效转移
  4. 弹性扩容,在任务运行时,可以动态的加机器
  5. 友好的管理控制台

缺点:

  1. 不能动态的添加任务,仅能在控制台对任务进行触发,暂停,删除等操作
  2. 文档不多,开源社区不够活跃

系统架构图如下:

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大分布式定时任务对比 就这?? 给你盘的明明白白相关推荐

  1. quartz 分布式_6大分布式定时任务对比

    作者 | sharedCode 来源 | blog.csdn.net/u012394095/article/details/79470904 分布式定时任务简介 把分散的,可靠性差的计划任务纳入统一的 ...

  2. 6大分布式定时任务对比

    作者 | sharedCode 来源 | blog.csdn.net/u012394095/article/details/79470904 分布式定时任务简介 把分散的,可靠性差的计划任务纳入统一的 ...

  3. php面试题 优信二手车_分布式定时任务对比 - sharedCode的个人空间 - OSCHINA - 中文开源技术交流社区...

    分布式定时任务 1. 什么是分布式定时任务 把分散的,可靠性差的计划任务纳入统一的平台,并实现集群管理调度和分布式部署的一种定时任务的管理方式.叫做分布式定时任务. 2. 常见开源方案 elastic ...

  4. 全云化架构(十一):分布式定时任务框架对比

    分布式定时任务框架对比 把分散的,可靠性差的计划任务纳入统一的平台,并实现集群管理调度和分布式部署的一种定时任务的管理方式.叫做分布式定时任务. 常见的分布式定时任务平台有elastic-job , ...

  5. redis实现轮询算法_Dcron:基于redis与一致性哈希算法的分布式定时任务库

    背景 最近项目中的定时任务越来越多,为了防止任务重复执行曾经使用过的方案: 只启用了一个节点. 固定循环间隔,使用分布式事务锁. 部署一套分布式任务调度系统. 方案一 没有容错机制,当单个节点宕机,所 ...

  6. 几种主流的分布式定时任务,你知道哪些?

    欢迎关注方志朋的博客,回复"666"获面试宝典 单点定时任务 JDK原生 自从JDK1.5之后,提供了ScheduledExecutorService代替TimerTask来执行定 ...

  7. 聊聊分布式定时任务中间件架构及其实现--转

    原文来自微信公众号:聊聊架构 在互联网应用中,各式各样的定时任务存于系统各个角落.我们希望由一个平台统一将这些作业管理起来.通过这个系统,作业的宕机.崩溃等状态就可收入运维同学掌控,直接对接报警系统, ...

  8. 基于spring+quartz的分布式定时任务框架

    http://www.cnblogs.com/aaronfeng/p/5537177.html 问题背景 我公司是一个快速发展的创业公司,目前有200人,主要业务是旅游和酒店相关的,应用迭代更新周期比 ...

  9. 【xxl-job】轻松实现分布式定时任务demo实例

    [项目描述] 前段时间专门独立了一个spring boot服务,用于做和第三方erp系统的对接工作.此服务的第一个需求工作就是可以通过不同的规则,设置不同的定时任务,从而获取erp系统的商品数据.所以 ...

最新文章

  1. Android 百度地图 SDK v3.0.0 (二) 定位与结合方向传感器
  2. 数据结构之表(5)栈的顺序实现
  3. MVC根据CheckBox的Value值选中对应的复选框及获取选中的Value值
  4. 中国人民公安大学网络对抗技术作业一
  5. mysql mysqlslap压力测试用例
  6. python中时间的加n和减n运算
  7. C++ and Java template class and function 模板类和模板函数
  8. mac的obs录制不到全屏
  9. windows切屏快捷键
  10. JS 平方 开方 笔记
  11. AcWing1402. 星空之夜
  12. About all the awsome websites
  13. php设置系统时区,php 设置时区
  14. 浅谈——服务器虚拟化超融合存储
  15. 公司债个人投资者认购门槛或为1000元
  16. mac 版webstorm 破解终极版本
  17. openstack和云桌面杂记
  18. centos 7 强制重置root密码
  19. 手写原笔迹输入_原笔迹手写软件 - 随意写 V1.1
  20. 使用opencv将jpg转png

热门文章

  1. Java读取Excel表格中的数据
  2. android 中的设计模式
  3. android手机怎么拆机,韩雪拆安卓手机:十分钟熟练拆机/详解每个部件
  4. ISP路由表分发中的AS与BGP
  5. 5月18日德玛西亚服务器怎么维护,LOL5.18测试服更新内容是什么_LOL5月18日测试服更新内容介绍_游戏堡...
  6. 1386:打击犯罪(black)
  7. iOS传感器:使用陀螺仪完成一个小球撞壁的小游戏
  8. 攻防世界WEB练习 | easyphp
  9. Vim实用技巧_2.普通模式和插入模式
  10. R语言使用epiDisplay包的summ函数计算dataframe数据中的指定数据列在分组变量下的统计量(样本数、均值、中位数、标准差、最大值、最小值)、可视化一个按照分类变量绘制的有序点图