微服务任务调度平台:SIA-TASK的架构与设计

版权申诉
0 下载量 103 浏览量 更新于2024-07-02 收藏 3.12MB PDF 举报
该文档是关于基于微服务架构的开源任务调度平台的深入探讨,主要关注微服务环境下的任务调度问题及其解决方案。文档涵盖了任务调度的不同类型、痛点、设计因素以及一个名为SIA(Simple is Awesome)的任务调度系统。 1. 任务调度类型: - 固定时间任务:如Crontab,用于周期性执行的任务,如数据同步。 - 日历任务:支持特定日期的调度。 - 延时任务:如Fixeddelay,适合实时性要求高的业务。 - 固定间隔任务:如Fixedrate,用于保持固定的执行频率。 2. 微服务任务调度痛点: - 单点/遗忘/依赖:任务可能缺乏结果或日志展示,且不支持动态配置。 - 缺失任务执行可控性:难以对任务执行进行有效监控和管理。 3. 考虑因素: - 实时监控:对任务执行进行实时监控以确保正常运行。 - 可视化:通过图形界面展示任务状态和流程。 - 跨平台:支持多种操作系统和环境。 - 易用性和易扩展性:简化用户操作,方便系统扩展。 - 三高架构:高可用、高性能、高可扩展性。 - 任务分片:将大任务分解为小任务并行处理。 - 动态编辑:在运行时修改任务配置。 - 故障转移:当主节点故障时,能自动切换到备用节点。 - 无侵入:不影响微服务原有的架构和功能。 4. SIA-TASK系统: - 自定义路由规则:允许用户根据需求定制任务执行路径。 - task上传+执行器注册:任务的上传与执行器的注册过程。 - Job发布:发布新的任务供执行器执行。 - 优先级抢占:根据任务优先级决定执行顺序。 5. 架构流程: - 任务编排管理:管理任务的执行顺序和依赖关系。 - 执行器集群:处理并执行调度任务的分布式组件。 - 调度器核心:负责任务的调度决策。 - 注册中心:执行器和服务发现的重要组件。 - 编排中心:协调任务的执行流程。 6. 流式任务引擎: - DAG图谱定义:定义任务间的依赖关系,支持串行、并行和分支执行。 7. 稳定性和负载能力提升: - 设定容错阈值:确保单线程负载不超过1秒。 - 单个线程并发Job的Trigger:支持超过100个并发触发。 - Hunter和Thread设计:实现无侵入的多线程控制,确保单一任务实例的单线程运行,并支持作业生命周期管理和操作。 - 基于注解自动抓取任务:简化任务的管理和监控。 总结:这份文档详细阐述了微服务架构下任务调度的挑战、需求和解决方案,特别是介绍了SIA-TASK系统的设计思想和架构,对于理解如何在微服务环境中构建高效、可靠的调度平台具有重要参考价值。