问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

分布式任务调度框架选型,如何选择一个合适的框架?

发布网友 发布时间:2022-10-13 22:22

我来回答

1个回答

热心网友 时间:2023-11-09 21:38

首先,这种框架现在市面上是有的。强烈建议,不要重复造轮子。

先介绍几种比较主流的。

Elastic-Job,是当当网开源的分布式调度解决方案,支持任务分片功能,可以充分利用资源。Elastic-Job有两个独立的子项目Elastic-Job-Lite和Elastic-Job-Cloud组成。具体实现可以参考官方教程。其整体架构图如下。

Elastic-Job的特点:

1、分布式调度 2、作业高可用 3、任务分片执行。

另外,还有其他的一些框架,可以对比使用。比如TBSchele是阿里巴巴开源的分布式调度框架,完全由java实现,目前被应用于淘宝,阿里巴巴,支付宝,京东, 汽车 之家等。大众点评开源的xxl-job,也是应用比较广泛的分布式调度任务。

目前我使用过的有 Elastic-Job和xxl-job。两者功能都很强大,后台管理也比较完善。很容易上手。都可以满足日常的工作需要。区别就是 Elastic-Job依赖zk,但是xxl-job不依赖zk,只依赖数据库。

目前市面上应该还有一些其他的框架,但是以上是比较主流的,可以根据自己的需要来选择。切记不要重复造轮子,造轮子需要大量的时间去验证。会让你在坑里爬不出来。

1.XXL-JOB

2.Elastic-Job

Elastic-Job 是一个分布式调度解决方案,由两个相互独立的子项目 Elastic-Job-Lite 和 Elastic-Job-Cloud 组成。

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

支持分布式调度协调、弹性扩容缩容、失效转移、错过执行作业重触发、并行调度、自诊断和修复等等功能特性。

分布式调度解决方案,由两个相互独立的子项目Elastic-Job-Lite和Elastic-Job-Cloud组成。

Elastic-Job-Lite定位为轻量级无中心化解决方案,使用jar包的形式提供分布式任务的协调服务。选择该项目可以满足大多数it企业的需求。

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

轻量级无中心化:Elastic-Job-Lite并无作业调度中心节点,而是基于部署作业框架的程序在到达相应时间点时各自触发调度。

灵活的增删改查作业,集中式管理调度作业

支持高可用:一旦执行作业的服务器崩溃,等待执行的服务器将会在下次作业启动时替补执行。开启失效转移功能效果更好,可以保证在本次作业执行时崩溃,备机立即启动替补执行。

支持分片:作业分片一致性,保证同一分片在分布式环境中仅一个执行实例

任务监控:通过监听Elastic-Job-Lite的zookeeper注册中心的几个关键节点即可完成作业运行状态监控功能

一致性:使用zookeeper作为注册中心,为了保证作业的在分布式场景下的一致性,一旦作业与注册中心无法通信,运行中的作业会立刻停止执行,但作业的进程不会退出,这样做的目的是为了防止作业重分片时,将与注册中心失去联系的节点执行的分片分配给另外节点,导致同一分片在两个节点中同时执行。

同时支持动态扩容,将任务拆分为n个任务项后,各个服务器分别执行各自分配到的任务项。一旦有新的服务器加入集群,或现有服务器下线,elastic-job将在保留本次任务执行不变的情况下,下次任务开始前触发任务重分片

3.opencron

opencron是一个功能完善且通用的开源定时任务调度系统,拥有先进可靠的自动化任务管理调度功能,提供可操作的 web 图形化管理满足多种场景下各种复杂的定时任务调度,同时集成了 linux 实时监控、webssh 等功能特性

4.quartz

支持集群和分布式,但是没有友好的管理界面,功能单一,对于管理调用的任务比较困难。

quartz使用数据库锁。在quartz的集群解决方案里有张表scheler_locks,quartz采用了悲观锁的方式对triggers表进行行加锁,以保证任务同步的正确性。一旦某一个节点上面的线程获取了该锁,那么这个Job就会在这台机器上被执行,同时这个锁就会被这台机器占用。同时另外一台机器也会想要触发这个任务,但是锁已经被占用了,就只能等待,直到这个锁被释放。

quartz的分布式调度策略是以数据库为边界资源的一种异步策略。各个调度器都遵守一个基于数据库锁的操作规则从而保证了操作的唯一性。同时多个节点的异步运行保证了服务的可靠。但这种策略有自己的局限性:集群特性对于高CPU使用率的任务效果很好,但是对于大量的短任务,各个节点都会抢占数据库锁,这样就出现大量的线程等待资源。这种情况随着节点的增加会越来越严重。

缺点:quartz的分布式只是解决了高可用的问题,并没有解决任务分片的问题,还是会有单机处理的极限。

5.Saturn

Saturn

基于当当Elastic Job代码基础上自主研发的任务调度系统,是唯品会开源的分布式作业调度平台,取代传统的Linux Cron/Spring Batch Job的方式,做到统一配置,统一监控,任务高可用以及分片并发处理。主要是去中心化,高可用,可分片,动态扩容,有认证和授权功能。

主要特性

支持多种语言作业,语言无关(Java/Go/C++/PHP/Python/Ruby/shell)

支持秒级调度

支持作业分片并行执行

支持依赖作业串行执行

支持作业高可用和智能负载均衡

支持异常检测和自动失败转移

支持异地容灾

支持多个集群部署

支持跨机房区域部署

支持弹性动态扩容

支持优先级和权重设置

支持docker容器,容器化友好

支持cron时间表达式

支持多个时间段暂停执行控制

支持超时告警和超时强杀控制

支持灰度发布

支持异常、超时和无法高可用作业监控告警和简易的故障排除

支持失败率最高、最活跃和负荷最重的各域各节点TOP10的作业统计

优点:源码清晰,学习入手容易。应用部署简单,提供运维控制台,集中管理作业,运维控制台功能强大,提供作业统计报表 ,告警,增删改查作业,作业统一配置。

最后一个是国内团队封装的

前端时间研究了两款分布式任务调度框架,一个是XXL-Job,现在非常主流,很多常见的一些公司都在使用,像滴滴美团这样的公司都在用,这也是一款开源产品,下载下来导入IDEA就可以使用,分调度器和执行器和管理UI,有很美观的UI界面,可以对任务做增删改查,以及支持自定义开发,有很详细的帮助文档,还提供有demo,傻瓜式的,很简单,亮点是提供了管理界面。

另一个是Quartz,这个组件单机和集群都支持,单机的话是RAMJobStore任务存储,而要支持集群的话,就要将配置改成数据库方式,Quartz提供的有十几张表,其分布式的原理是利用了数据库的行锁,Quartz很简单,也是一款轻量级的开源产品,我们公司一直用这款组件,很成熟无Bug,推荐使用!

springcloudtask,springclouddataflow,正在学习中
分布式任务调度框架选型,如何选择一个合适的框架?

1、分布式调度 2、作业高可用 3、任务分片执行。另外,还有其他的一些框架,可以对比使用。比如TBSchedule是阿里巴巴开源的分布式调度框架,完全由java实现,目前被应用于淘宝,阿里巴巴,支付宝,京东, 汽车 之家等。大众点评开源的xxl-job,也是应用比较广泛的分布式调度任务。目前我使用过的有 Elastic-Job...

数据中台落地方法论是什么?

数据中台的推荐可从下面三个大方面来考虑一、数据中台的发展与应用如今的企业运营中,数据中台的概念已经成为推动企业数字化转型的关键组成部分。数据中台是指一个集中的数据管理和分析平台,它通过整合企业内部的各种数据资源,为决策制定提供...

分布式调度任务技术选型-xxl-job二次开发优化

执行器AppName:(在admin后台配置的AppName) 执行器心跳注册分组依据;为空则关闭自动注册,同一个执行器集群内AppName需要保持一致;调度中心根据该配置动态发现不同集群的在线执行器列表。xxl.job.executor.appname=top-service-job 执行器IP:默认为空表示自动获取IP,多网卡时可手动设置指定IP,该IP不...

只会用 xxl-job?更强大的新一代分布式任务调度框架来了!

定时任务的触发方式多样,包括CRON表达式、固定频率和固定延迟。CRON支持定时调度,而固定频率和延迟则提供了更灵活的执行顺序控制。总体来说,PowerJob提供了强大而灵活的分布式任务调度解决方案,是值得深入研究和使用的框架。

分布式定时任务调度框架实践

(1) Scheduler :任务调度器,是执行任务调度的控制器。本质上是一个计划调度容器,注册了全部Trigger和对应的JobDetail, 使用线程池作为任务运行的基础组件,提高任务执行效率。 (2) Trigger :触发器,用于定义任务调度的时间规则,告诉任务调度器什么时候触发任务,其中CronTrigger是基于cron表达式构建的功能强大的触发器。

支付宝定时任务怎么做?三层分发任务处理框架介绍

在分库分表的大型业务流量下,单机定时任务无法满足需求。支付宝采用分布式任务调度中间件Antscheduler配合三层分发任务处理框架,对大量数据进行定时批量处理。三层分发 三层分发实现定时任务处理过程:Antscheduler按照规则定时投递消息至消息中心,消息中心将任务消息分别投递到每个Zone的机器,机器进入第一层Split...

【PowerJob】值得你拥有的新一代分布式任务调度与计算框架

PowerJob,作为新一代的分布式任务调度与计算框架,旨在简化作业调度和复杂计算的管理。它支持多种调度策略,如CRON、API、固定频率和固定延迟,同时通过工作流功能解决任务间的依赖关系,为高效执行任务提供了有力支持。相较于市场上的其他选择,如Quartz、elastic-job和xxl-job,PowerJob的优势在于其进化性。

什么是分布式任务调度?怎样实现任务调度

但它们功能有限。更为强大的 Quartz 框架,如 Github 上的 Quartz-sched...,支持复杂的调度策略,包括按时间间隔和日历事件定制任务执行。下面是一个 Quartz 的示例:总结来说,分布式任务调度是通过分布式系统优化任务处理能力的关键技术,它涉及任务切分、并发执行、高可用保障和灵活的调度策略设置。

美团点评许雪里:分布式任务调度平台 XXL-JOB

XXL-JOB是一个轻量级分布式任务调度框架,具备以下七个特点:平台:统一了任务开发基础站,新手快速上手;汇总散落任务,复用业务逻辑;提供自维护和扩展功能。HA/集群:高可用集群确保任务调度稳定运行;面对大量任务数据时,快速集群扩展。弹性扩容:支持执行器的快速或动态扩容,应对业务量增长。故障处理:...

定时任务框架选型Quartz/Xxl

表文件在jar包的org.quartz.impl.jdbcjobstore,可根据数据库类型选择不同的数据库文件;quartz也提供了数据库方面的任务配置及集群下的任务处理;XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。官网:https://www.xuxueli.com/xxl-job/ gitee传送门:https:/...

任务调度平台XXL-JOB使用

分布式任务调度平台xxl-job是一个开源框架。2.1 application.yml的配置文件 yml配置文件加上配置。其中的”@xxl.job.executor.appname@”等配置是在config_ local.properties 文件里,参数具体意思参考文档。通常yml里是写具体的参数值,这里用这种方式是如何实现和config_ local.properties 文件对应的,...

分布式任务调度框架选择 分布式任务调度框架java java的分布式任务框架 分布式任务分发框架 分布式框架选型 分布式调度框架 分布式任务调度怎么用 开源分布式调度框架 shared分布式任务框架
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
长沙悦涛文化干什么的 吉林省弘扬文化传媒公司怎么样?公司待遇怎么样? 脂肪肝跟肝内胆管结石.哪个会影响.入职体检 你好,我想请问一下广汽本田入职体检,查出肝内胆管结石会不会拒绝... 肝内胆管结石,肝功能正常,会影响公务员入职体检吗 vb交换数组 ...从键盘输入的10个整数,存入一维数组,将前后元素依次对调后打印输出... 找一部9几年的国外影片 华丽的外出电影别名叫什么 《法国啄木鸟》系列电影的别名是什么? 试论述各种地理环境对国际经贸的影响,国际贸易地理的简答题 《国际贸易地理》对国际物流有什么帮助? 质量效应3通过之后能否继续玩 质量效应3 二周目火星 伊娃过不去啊。。。 质量效应3武器升级问题 质量效应3怎么进行二周目?我打通关了怎么又回到决战前的地方了?、 质量效应3二周目继承一周目的军力吗,就是那个什么战争资源?要是能继承是不是就容易过5000了。。 质量效应3二周目声望叠加吗 质量效应3通关后选择创建新人物就不是二周目了?一定要载入通关人物才可以二周目吗?可以换人物职业吗? 请问,质量效应3二周目怎么开始? 质量效应3二周目是重新玩一遍么? 歌手演唱中,带的耳返放的都是什么?为什么那么重要? 唱歌时带的耳机的作用 做蚕丝被为什么要杀蛹 叶凡的老婆都是谁? 高考了吃什么能增强记忆力? 一次有趣的活动的四年级作文 一次有趣的活动优秀作文 水果小发夹怎么戴好看?我是中分刘海 上海落户公示名单在哪里查询 阳澄湖大闸蟹多大的最好 阳澄湖大闸蟹多大就可以吃 - 信息提示 新建电厂电网接入系统由电厂出资,国家电网再收回产权有没有这样的文件,给提供一下,谢谢 梁的跨度是5米,高40厘米,宽24厘米,梁顶设2根16的*钢筋,梁底设2根 国家计委、国家经贸委、电力工业部、建设部印发《关于发展热电联产的若干规定》的通知 请教:如果建设自备电厂,而且不并网运行,核准时还需找电网公司做接入系统审查吗? 梦见白蟾蜍什么意思 中华慈善日是哪一天 水力学问题。长涵洞,断面为圆形,洞底坡降0.027,请计算涵洞的进口水深、出口水深及过流能力。 法考客观题162分什么水平 法国的著名人物 住酒店可以用户口本登记吗 山东省中小学教师职称评审办法 山东省中小学教师职称评审办法简述 山东省基层中小学教师高级职称评审条件指导标准 山东2021年教师职称评定还要县级荣誉吗? 幼儿园为啥强迫孩子睡午觉?看完这个研究结果,或许你就明白了 孩子上幼儿园前,需做哪些准备? 市场推广助理职责 opopA11能安装联通卡吗 成都河流分布及作用