毛正卫-基于微服务架构的任务调度平台
如果无法正常显示,请先停止浏览器的去广告插件。
1.
2. 微服务任务调度-任务类型
Microservice task scheduling - Task Type
日历
55%
支持多种日历
在特定的日期进行调度
10%
5%
固定时间
Crontab
需要周期性执行的任务
数据同步
固定间隔
Fixed rate
Eureka Server
注册-续约
Zookeeper
healthCheck
30%
延时任务
Fixed delay
针对实时性要求较高的
业务.
3. 微服务任务调度-痛点
Microservice task scheduling - pain point
单点/遗忘/依赖
没有结果/日志-展示
不支持动态配置
缺失任务执行可控性
4. 微服务任务调度-思考
Microservice task scheduling - Think
0
1
5. 微服务任务调度-因素
Microservice task scheduling - factors
易用性
实时监控
动态编辑
三高架构
易扩展
无侵入
任务分片
任务编排
跨平台
故障转移
可视化
高可用
6. 微服务任务调度-US
Microservice task scheduling - for us
SIA-TASK
• Simple is Awesome
• SIA是我们公司基础开发平台Simple is Awesome的
简称
7. 微服务任务调度-架构流程
Microservice task scheduling - Framework
task上传 + 执行器注册
1
注册中心
任务
编排管理
Job 发布
自定义路由规则
3
优先级抢占
4
network
load
balancer
调度器核心
执行器集群
5
2
编排中心
8. 微服务任务调度-流式任务引擎
Microservice task scheduling - Streaming task engine
任务关系设计
1
2
2
DAG图谱定义
串行
并行
分支
100 %
9. 微服务任务调度-负载
Microservice task scheduling - load
P
S
负载能力提升
稳定性设计
SYSTEM
D ESI G N 单线程负载能力
P • 设定容错阈值 : 不超过 1s
• 单个线程 并发Job的Trigger : 100+
S
10. 微服务任务调度-特性
Microservice task scheduling - features
基于注解自动抓取任务
• 微服务中各个任务元数据的管理,数
据抓取,录入.
• 微服务化的各个节点的执行器维护。
01
02
Thread
Hunter
调度器自适应任务分配
• 抢占式均衡算法,丰富的路由策略
• 失败转移,预警 , 任务自诊断修复
• 弹性扩容缩容
04
Load
基于注解无侵入多线程控制
03
• 单一任务实例必须保持单线程运行.
• 支持作业生命周期管理和操作
Task
SIA-TASK
06
高度灵活任务编排模式
05
UI
• 简单,易用的编排设计
• 多种组织关系的支持
• 多类型调度方式支持
cloud
云支持
运维平台
• 高可用设计(Design for Availability • 易用UI交互
• 可扩展设计:无状态设计模式,自动弹性扩容 • 一体式监控平台
• 快速失败设计:
11. 微服务任务调度-应用场景
Microservice task scheduling - application scenarios
流式调度
并行调度
任务管理
、
任务流式应用 分布式调度 任务中心
任务与任务之间存在
流式依赖 单一任务比较繁重,
任务需要拆分多个子
任务独立并行运行 任务繁多,管理比较
困难
12. 微服务任务调度-监控
Microservice task scheduling - monitor
13. 微服务任务调度-调度器管理
Microservice task scheduling - Scheduler management
调度器监控
调度器管理
14. 微服务任务调度-任务管理
Microservice task scheduling - Task management
Task管理
Job管理
15. 微服务任务调度-任务流编排
Microservice task scheduling - mataData
• 拖拽式编排设计
• 任务重复引用提示
• 简单易用
16. 微服务任务调度-注册中心管理
Microservice task scheduling - mataData
• ZK管理端
17. 微服务任务调度-开源
Microservice task scheduling - OpenSource
SIA-TASK作为SIA团队的一个重要
产品,在公司接入了数十个项目,运行着
1000+个JOB,经受住了稳定性的考验。
因此,SIA-TASK于2019年5月22号正
式开源。
https://github.com/siaorg/sia-task