java中的saturn_Saturn分布式调度平台系列:高屋建瓴之设计原理简析

Saturn是唯品会开源的分布式调度平台,比Spring Batch Job/Quartz更具增强与优化。文章介绍了作业、分片、域和执行节点等关键概念,以及核心模块如saturn-core、saturn-executor的功能。流程设计中,分片调度器通过QUARTZ在执行节点上调用作业,实现负载均衡和资源隔离。执行节点负责作业触发、执行及上报,而分片调度器处理节点上线、下线、作业启用和禁用等事件。
摘要由CSDN通过智能技术生成

由于业务系统中使用了Saturn作为分布式调度平台并且计划对其作二次开发,因此看了官方文档及源码,简单做了梳理与总结。Saturn是唯品会开源的一款定时任务调度平台,相对于传统的Spring Batch Job/Quartz等框架有较大的增强与优化。

系统中有几个关键概念,简要说明如下:

作业(Job):即可独立执行的函数实现,可简单理解为包含处理逻辑的JAVA实现类或SHELL脚本。

分片(Sharding):即作业并发执行的数量(与执行编号)。例如分片数为2,表示作业最多可以在2个执行节点并发执行,执行编号为0和1。

域(Namespace):即属于某一特定域的一组执行节点与作业,这个特定域可以是某个服务、系统或团队,本质上是个抽象概念,用于作分类。某个域中的执行节点功能对等,域中作业可以在其任何一个节点上执行。

执行节点(Executor):即负责调用并执行作业的进程。通过QUARTZ定时驱动来触发,调用作业并执行指派的作业分片。

核心系统模块划分:

saturn-core:核心模块

saturn-console-core:控制台公共模块

saturn-console:控制台

saturn-executor:执行节点

saturn-job-sharding:分片调度器

流程设计原理:

Saturn将作业在逻辑上划分为若干分片,通过分片调度器将分片指派给执行节点。各个执行节点通过QUARTZ触发作业具体函数实现(或SHELL脚本)。执行时会将分片序号和参数传入。

再从架构角度来看几个关键组件的作用&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值