专栏名称: 架构师之路
架构师之路,坚持撰写接地气的架构文章
目录
相关文章推荐
架构师之路  ·  啥是2PC?在架构设计中有什么用? | ... ·  2 天前  
美团技术团队  ·  AutoConsis:UI内容一致性智能检测 ·  6 天前  
美团技术团队  ·  MARS ... ·  6 天前  
高可用架构  ·  Java方法设计原则与实践:从Effecti ... ·  1 周前  
51好读  ›  专栏  ›  架构师之路

github标星28K,这个中文项目不知道就亏大了!(国人的骄傲)

架构师之路  · 公众号  · 架构  · 2024-11-26 08:10

正文

架构设计100讲:后台任务》中很多朋友说Quartz不好用,询问有没有推荐的分布式任务调度平台。这个国人的项目,必须推荐给你!


项目名称:XXL-JOB

项目地址https://github.com/xuxueli/xxl-job

项目双语介绍,是不是就必须顶一下?

XXL-JOB是一个怎样的项目?
这是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展、开箱即用

XXL-JOB有什么特点?
1. 简单:一分钟docker部署,一分钟上手;
2. 分布式,高可用:调度中心,执行器均支持集群部署,高可用;
3. 策略丰富:触发策略,调度过期策略,阻塞处理策略,路由策略灵活;
4. 健壮性:超时控制,失败重试,失败预警,故障转移考虑全面;
5. 灵活性:支持在线开发任务,支持通用Handler,支持任务依赖,支持数据加密,支持用户管理,角色分配,权限控制;
6. 易用性:后台CURD操作便捷,支持面板查看数据;
7. 文档全:中文文档,及其全面;
8...
画外音:官方文档包含36大优点,自己去git看吧。

如何快速部署?
git上描述得十分详细,五大步骤:
1. 初始化数据库;
2. 编译源码;
3. 部署“调度中心”;
4. 部署“执行器”(可选);
5. 开发调度任务;

非常方便与快捷。


为什么不用Quartz,而要造一个轮子XXL-JOB?
Quartz作为开源作业调度中的佼佼者,但依然存在以下问题:

(1)调用API的的方式操作任务,不人性化;
(2)需要持久化业务QuartzJobBean到底层数据表中,系统侵入性相当严重;
(3)调度逻辑和QuartzJobBean耦合在同一个项目中,这将导致一个问题,在调度任务数量逐渐增多,同时调度任务逻辑逐渐加重的情况下,此时调度系统的性能将大大受限于业务;
(4)quartz底层以“抢占式”获取DB锁并由抢占成功节点负责运行任务,会导致节点负载悬殊非常大;
画外音:XXL-JOB通过执行器实现“协同分配式”运行任务,充分发挥集群优势,负载各节点均衡。

XXL-JOB则弥补了Quartz的上述不足之处。

XXL-JOB的核心设计思想是什么?
(1)将调度行为抽象形成“调度中心”公共平台,而平台自身并不承担业务逻辑,“调度中心”负责发起调度请求;
(2)将任务抽象成分散的JobHandler,交由“执行器”统一管理,“执行器”负责接收调度请求并执行对应的JobHandler中业务逻辑。

即,“调度”和“任务”两部分可以相互解耦,提高系统整体稳定性和扩展性。

XXL-JOB架构如何?
XXL-JOB架构图如上所示,系统主要由两大部分组成:

其一,调度中心。
负责管理调度信息,按照调度配置发出调度请求,自身不承担业务代码。调度系统与任务解耦,提高了系统可用性和稳定性,同时调度系统性能不再受限于任务模块。

支持可视化、简单且动态的管理调度信息,包括任务新建,更新,删除,GLUE开发和任务报警等,所有上述操作都会实时生效,同时支持监控调度结果以及执行日志,支持执行器Failover。

其二,执行器。
负责接收调度请求并执行任务逻辑。任务模块专注于任务的执行等操作,开发和维护更加简单和高效。

接收“调度中心”的执行请求、终止请求和日志请求等。

XXL-JOB靠谱吗,不是为了晋升搞出来的玩具吧?
据不完全统计:美团、平安、海尔、优信、移动、360、联想、京东、用友、搜狐、滴滴、科大讯飞、作业帮、哈啰、美图、途家、网易、理想、货拉拉、银联... 等几千家公司都在用着,靠不靠谱,可自行判断。

==全文完==

更多宝藏项目:
数据库架构学习,1个github宝藏项目就够了
github小众神项目,给人学的23个设计模式
github标星17.5W,榜单前20唯一中文神项目

调研:XXL-JOB,你用了吗?谢