基本介绍
项目开发中,常常以下场景需要分布式任务调度:
- 同一服务多个实例的任务存在互斥时,需要统一协调
- 定时任务的执行需要支持高可用、监控运维、故障告警
- 需要统一管理和追踪各个服务节点定时任务的运行情况,以及任务属性信息,例如任务所属服务、所属责任人
因此,XXL-JOB应运而生:
XXL-JOB是一个开源的轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展、开箱即用,其中“XXL”是主要作者,大众点评许雪里名字的缩写
自2015年开源以来,已接入数百家公司的线上产品线,接入场景涉及电商业务,O2O业务和大数据作业等
功能特性
主要功能特性如下:
- 简单灵活
提供Web页面对任务进行管理,管理系统支持用户管理、权限控制;
支持容器部署;
支持通过通用HTTP提供跨平台任务调度;
- 丰富的任务管理功能
支持页面对任务CRUD操作;
支持在页面编写脚本任务、命令行任务、Java代码任务并执行;
支持任务级联编排,父任务执行结束后触发子任务执行;
支持设置任务优先级;
支持设置指定任务执行节点路由策略,包括轮询、随机、广播、故障转移、忙碌转移等;
支持Cron方式、任务依赖、调度中心API接口方式触发任务执行
- 高性能
调度中心基于线程池多线程触发调度任务,快任务、慢任务基于线程池隔离调度,提供系统性能和稳定性;
任务调度流程全异步化设计实现,如异步调度、异步运行、异步回调等,有效对密集调度进行流量削峰;
- 高可用
任务调度中心、任务执行节点均 集群部署,支持动态扩展、故障转移
支持任务配置路由故障转移策略,执行器节点不可用是自动转移到其他节点执行
支持任