PaaS 分布式任务调度平台集成了目前已被各企业广泛采纳的开源项目--XXL-JOB,XXL-JOB是一个Java语言编写的基于GPL V3开源协议的分布式任务调度平台,其核心的设计目标是开发迅速、学习简单、轻量级、易扩展。本节将对XXL-JOB的设计思想和架构等内容进行详细介绍。
将调度行为抽象形成“调度中心”公共平台,而调度中心自身并不承担业务逻辑,“调度中心”负责发起调度请求。
任务以源码或抽象后分散的JobHandler形式,由执行器统一调度管理,执行器负责接收调度请求并执行对应源码/JobHandler中的业务逻辑。任务分为两种运行模式:Bean模式、GLUE模式。
任务以JobHandler的形式在执行器维护
任务运行模式为Bean:包括类形式和方法形式,需要在执行器源码项目中开发代码定义任务,然后随执行器部署后可在调度中心添加执行。
任务以源码的形式在调度中心维护
任务运行模式为GLUE:通过WebIDE在线编辑代码,支持Java、Shell、Python、NodeJS、PHP、PowerShell等语言。
图-1 分布式任务调度平台架构图
分布式任务调度平台将整个平台分为调度中心和执行器两部分。
调度中心:
负责管理调度信息,按照调度配置发出调度请求,自身不承担业务代码。调度系统与任务解耦,提高了系统可用性和稳定性,同时调度系统性能不再受限于任务模块。
支持可视化、简单且动态的管理调度信息,包括任务新建、更新、删除、GLUE开发和任务报警等,所有上述操作均实时生效。同时,支持监控调度结果及执行日志。
执行器:
执行器负责接收调度请求并执行任务逻辑。任务模块专注于任务的执行等操作,开发和维护更加简单和高效。
接收调度中心的执行请求、终止请求和日志请求等。
部署调度中心:PaaS平台已内置调度中心,无需重复部署。
注册执行器:将执行器注册到调度中心的底层注册表中。
配置调度任务:在调度中心增加调用任务,绑定执行器,配置任务启动命令、执行器处理策略等数据。