(xxl_jobquartz):XXL_JOB对比Quartz一决高下!

(xxl_jobquartz):XXL_JOB对⽐Quartz⼀决⾼下!
概述:
  XXL-JOB是⼀个轻量级分布式任务调度平台,其核⼼设计⽬标是开发迅速、学习简单、轻量级、易扩展。
现已开放源代码并接⼊多家公司线上产品线,开箱即⽤。
深圳技术职业学院易信 (⽹易)等等.... Quartz作为开源作业调度中的佼佼者,是作业调度的⾸选。
集环境中Quartz采⽤API的⽅式对任务进⾏管理,Quartz存在以下问题:
Quartz的不⾜:
问题⼀:调⽤API的的⽅式操作任务,不⼈性化;
问题⼆:需要持久化业务QuartzJobBean到底层数据表中,系统侵⼊性相当严重。
问题三:调度逻辑和QuartzJobBean耦合在同⼀个项⽬中,这将导致⼀个问题,在调度任务数量逐渐增多,
    同时调度任务逻辑逐渐加重的情况加,此时调度系统的性能将⼤⼤受限于业务;
问题四:quartz底层以“抢占式”获取DB锁并由抢占成功节点负责运⾏任务,会导致节点负载悬殊⾮常⼤;
    ⽽XXL-JOB通过执⾏器实现“协同分配式”运⾏任务,充分发挥集优势,负载各节点均衡。
XXL-JOB弥补了quartz的上述不⾜之处。
XXL-JOB特性:
国家社科基金2017公示
简单:⽀持通过Web页⾯对任务进⾏CRUD操作,操作简单,⼀分钟上⼿
动态:⽀持动态修改任务状态、启动/停⽌任务,以及终⽌运⾏中任务,即时⽣效
调度中⼼HA(中⼼式):调度采⽤中⼼式设计,“调度中⼼”基于集Quartz实现并⽀持集部署,可保证调度中⼼HA
DIGITAL GAP
执⾏器HA(分布式):任务分布式执⾏,任务"执⾏器"⽀持集部署,可保证任务执⾏HA
注册中⼼: 执⾏器会周期性⾃动注册任务, 调度中⼼将会⾃动发现注册的任务并触发执⾏。同时,也⽀
持⼿动录⼊执⾏器地址
弹性扩容缩容:⼀旦有新执⾏器机器上线或者下线,下次调度时将会重新分配任务
路由策略:执⾏器集部署时提供丰富的路由策略,包括:第⼀个、最后⼀个、轮询、随机、⼀致性HASH、最不经常使⽤、最近最久未使⽤、故障转移、忙碌转移等
故障转移:任务路由策略选择"故障转移"情况下,如果执⾏器集中某⼀台机器故障,将会⾃动Failover切换到⼀台正常的执⾏器发送调度请求。
阻塞处理策略:调度过于密集执⾏器来不及处理时的处理策略,策略包括:单机串⾏(默认)、丢弃后续调度、覆盖之前调度任务超时控制:⽀持⾃定义任务超时时间,任务运⾏超时将会主动中断任务
任务失败重试:⽀持⾃定义任务失败重试次数,当任务失败时将会按照预设的失败重试次数主动进⾏重试;其中分⽚任务⽀持分⽚粒度的失败重试
焊后热处理任务失败告警;默认提供邮件⽅式失败告警,同时预留扩展接⼝,可⽅便的扩展短信、钉钉等告警⽅式
分⽚⼴播任务:执⾏器集部署时,任务路由策略选择"分⽚⼴播"情况下,⼀次任务调度将会⼴播触发集中所有执⾏器执⾏⼀次任务,可根据分⽚参数开发分⽚任务
动态分⽚:分⽚⼴播任务以执⾏器为维度进⾏分⽚,⽀持动态扩容执⾏器集从⽽动态增加分⽚数量,协同进⾏业务处理;
在进⾏⼤数据量业务操作时可显著提升任务处理能⼒  和速度
事件触发:除了"Cron⽅式"和"任务依赖⽅式"触发任务执⾏之外,⽀持基于事件的触发任务⽅式。调度中⼼提供触发任务单次执⾏的API服务,可根据业务事件灵活触发
任务进度监控:⽀持实时监控任务进度
Rolling实时⽇志:⽀持在线查看调度结果,并且⽀持以Rolling⽅式实时查看执⾏器输出的完整的执⾏⽇志
GLUE:提供Web IDE,⽀持在线开发任务逻辑代码,动态发布,实时编译⽣效,省略部署上线的过程。⽀持30个版本的历史版本回溯
脚本任务:⽀持以GLUE模式开发和运⾏脚本任务,包括Shell、Python、NodeJS、PHP、PowerShell等类型脚本
命令⾏任务:原⽣提供通⽤命令⾏任务Handler(Bean任务,"CommandJobHandler");业务⽅只需要提供命令⾏即可
施图伦
任务依赖:⽀持配置⼦任务依赖,当⽗任务执⾏结束且执⾏成功后将会主动触发⼀次⼦任务的执⾏, 多个⼦任务⽤逗号分隔
⼀致性:“调度中⼼”通过DB锁保证集分布式调度的⼀致性, ⼀次任务调度只会触发⼀次执⾏
⾃定义任务参数:⽀持在线配置调度任务⼊参,即时⽣效
调度线程池:调度系统多线程触发调度运⾏,确保调度精确执⾏,不被堵塞
数据加密:调度中⼼和执⾏器之间的通讯进⾏数据加密,提升调度信息安全性
邮件报警:任务失败时⽀持邮件报警,⽀持配置多邮件地址发报警邮件
推送maven中央仓库: 将会把最新稳定版推送到maven中央仓库, ⽅便⽤户接⼊和使⽤
运⾏报表:⽀持实时查看运⾏数据,如任务数量、调度次数、执⾏器数量等;以及调度报表,如调度⽇期分布图,调度成功分布图等全异步:任务调度流程全异步化设计实现,如异步调度、异步运⾏、异步回调等,有效对密集调度进⾏流量削峰,理论上⽀持任意时长任务的运⾏
跨平台:原⽣提供通⽤HTTP任务Handler(Bean任务,"HttpJobHandler"),业务⽅只需要提供HTT
P链接即可,不限制语⾔、平台国际化:调度中⼼⽀持国际化设置,提供中⽂、英⽂两种可选语⾔,默认为中⽂
容器化:提供官⽅docker镜像,并实时更新推送dockerhub,进⼀步实现产品开箱即⽤
nbs
线程池隔离:调度线程池进⾏隔离拆分,慢任务⾃动降级进⼊"Slow"线程池,避免耗尽调度线程,提⾼系统稳定性

本文发布于:2024-09-23 02:24:52,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/284523.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:任务   调度   提供   失败   集群   策略   触发
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议