一种基于事件驱动的统一调度系统和装置
2024-11-11 17:54:42 0 举报
一种基于事件驱动的统一调度系统和装置
作者其他创作
大纲/内容
实例重跑
注册(api或者本地服务)
管理驾驶舱
1. 解析触发参数2. 生成实例运行中事件并推入事件队列
底座
任务触发
产品业务
调度管理器3
Job_Add
离线
执行后置处理(postExe)
消费
K8s/Docker
Redis队列缓存实例状态
实例触发事件队列消费线程,并发送实例触发请求
实例运行中事件处理器
其他数据应用
调度管理器1
SHELL
统一调度执行器
调度管理器2
前台
调度管理器1
权限控制
Worker
实例触发事件处理器
NeetyServer
NettyClient
Job_Info
执行前置处理(preExe)
实际业务
调度执行器3
大数据平台
Job_Instance_Restart
关系型数据库
中台
自助分析
… …
ETL工具集
事件处理线程消费事件队列数据并与Master反向通信
Job_Instances
实例状态队列
Server_Info
执行
... ...
实例结束事件处理器,处理实例结束事件,往Redis队列推送实例success或failed状态
质量
创建
NoSQL
实时
实例运行中事件
独立服务器
任务更新
调度管理器2
Redis缓存无依赖实例,有依赖实例和实例依赖关系
调度执行器1
MR
数据库
更新
风险管理
其他事件处理器,重跑等
日志记录
发送
推送
调度关键业务库表
1. 调用底层数据源或引擎执行实际业务(或者调用接口)
推送事件
Job_Trigger
Job_Relations
Kylin
JVM
查询
调度执行器2
集成
统一调度系统
营销管理
Netty Client
任务控制器
采用轮询的方式分片查询未来5秒任务表,离散任务和流程的根节点任务,根据cron和下次时间计算下次调度时间推送到时间轮并更新下次调度时间
任务DAG
启动加载任务关系到本地缓存DAG,更新任务请求也会触发更新
... ...
实例触发事件
任务创建
引擎层
失败事件,推送实例状态,流程结束
实例运行事件处理器,处理实例运行事件,往Redis队列推送实例Running状态
任务删除
Flink
独立线程消费无依赖实例数据和实例依赖数据缓存,直接创建实例表和实例依赖关系表数据。对于有依赖关系的实例,实例数据会有一个上游任务数量的属性,如果上游任务数为0,则生成实例触发事件。然后清理数据。
Master
实例结束事件处理器
Netty Server
Job_Update
Job_Delete
失败的状态直接更新数据库,成功状态需要去Redis查询缓存的下游实例信息,并对下游实例的上游任务数做自减。然后更新有依赖实例缓存。
成功事件,从DAG查询下游任务,生成下游实例和上下游实例的依赖关系,推送上游实例状态,进入下一个任务的触发流程
运营管理
独立线程消费实例状态,更新实例状态
查询与消费
... ...
Redis
执行(Exe)
1. 生成实例结束事件并推入队列2. 清理本地过程数据
运行环境
时间轮循比较任务理论调度时间与当前系统时间,相等则生成待运行实例写入Redis缓存,然后生成实例触发事件,并推入触发事件队列
Job_Instance_Relations
API
MachineLearning
SQL
My SQL
实例执行(Exe)
Spark
建立双向通信
负载均衡加载
第三方虚拟主机
其他数据库
加载
调度Web接口
任务触发时间计算器
MPP
Oracle
实例结束事件
0 条评论
下一页