这是我参与「第五届青训营」伴学笔记活动的第10天
分布式定义:(来自百度百科)分布式计算是计算机科学中一个研究方向,它研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给多个计算机进行处理,最后把这些计算结果综合起来得到最终的结果。分布式网络存储技术是将数据分散地存储于多台独立的机器设备上。分布式网络存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,不但解决了传统集中式存储系统中单存储服务器的瓶颈问题,还提高了系统的可靠性、可用性和扩展性。
分布式定时任务 = 自动化 + 定时执行 + 海量数据 + 高效稳定;
定时任务是指系统为了自动完成特定任务,实时、延时、周期性完成任务调度的过程。
分布式定时任务:把分散的、可靠性差的定时任务纳入统一的平台,并实现集群管理调度和分布式部署的一种定时任务的管理方式。
按触发时机分类:
定时任务:特定时间触发,比如今天15:00执行;
延时任务:延时触发,比如10s后执行;
周期任务:固定周期时间,或固定频率周期调度触发,比如每隔5s或者每天12点执行
分布式定时任务-特点
自动化
平台化
分布式
伸缩性
高可用
分布式定时任务核心要解决触发、调度、执行三个关键问题;
触发器-核心职责:给定一系列任务,解析它们的触发规则,在规定的时间点触发任务的调度
设计约束:需要支持大量的任务、需要支持秒级的调度、周期任务需要多次执行、需要保证秒级扫描的高性能,避免资源浪费。
小结:
核心架构:控制台Admin、触发器Trigger、调度器Scheduler、执行器Executor
业务模型:任务数据Job、任务实例JobInstance、任务结果JobResult、任务历史JobHistory
触发器:定时扫描+延时消息;
时间轮:链表、最小堆、时间轮、多级时间轮
调度器:资源来源
资源调度:节点选择、任务分片、任务编排、故障转移
执行器:注册、调度、回调、心跳检测。