XXL-JOB系列一之架构设计

2024-06-20 16:45:18 浏览数 (2)

1 概述

XXL-JOB是一个分布式的任务调度平台,核心设计目标是开发迅速、学习简单、轻量级、易扩展。

2 源码目录介绍

/doc:文档资料

/doc/db:调度数据库建表脚本

/xxl-job-admin:调度中心

/xxl-job-core:公共jar包依赖

/xxl-job-executor-samples:执行器示例项目

3 调度数据库表介绍

xxl_job_lock:任务调度锁表,当有调度中心为集群模式时,确保同一个时间点只有一个实例在触发任务

xxl_job_group:执行器信息表,维护任务执行器信息

xxl_job_info:调度扩展信息表,用于保存任务调度的扩展信息,如任务分组、任务名、机器地址、执行器、执行入参等

xxl_job_log:调度日志表,用于保存任务调度的历史信息,如调度结果、执行结果、调度入参、调度机器和执行器等

xxl_job_log_report:调度日志报表,用于存储任务调度日志的列表,调度中心报表功能页面会用到

xxl_job_logglue:任务GLUE日志,用于保存GLUE更新历史,用户支持GLUE的版本回溯功能

xxl_job_registry:执行器注册表,维护在线的执行器和调度中心机器地址

xxl_job_user:系统用户表

4 架构设计

4.1 设计思想

将调度行为抽象形成调度中心公共平台,平台自身并不承担业务逻辑,调度中心负责发起调度请求。

将任务抽象成分散的JobHandler,交由执行器统一管理,执行器负责接收调度请求并执行对应的JobHandler中的业务逻辑。

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

4.2 系统组成

调度模块(调度中心)

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

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

执行模块(执行器)

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

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

4.3 架构图

引用官方的一张架构图

0 人点赞