如何办好分布式任务调度 Scheduler 的一些探索
发布时间:2022-08-23 15:24 所属栏目:52 来源:互联网
导读:找准定位:分布式任务调度平台 无论是互联网应用或者企业级应用,都充斥着大量的任务。我们常常需要一些任务调度系统帮助我们解决问题。随着微服务化架构的逐步演进,单体架构逐渐演变为分布式、微服务架构。在此的背景下,很多原先的单点式任务调度平台已经
找准定位:分布式任务调度平台 无论是互联网应用或者企业级应用,都充斥着大量的任务。我们常常需要一些任务调度系统帮助我们解决问题。随着微服务化架构的逐步演进,单体架构逐渐演变为分布式、微服务架构。在此的背景下,很多原先的单点式任务调度平台已经不能满足业务系统的需求。于是出现了一些基于分布式的任务调度平台。 Scheduler 是飞书内的分布式任务调度平台。分布式任务调度能力主要包括: 分布式:平台是分布式部署的,各个节点之间可以无状态和无限的水平扩展(保证可扩展); 任务调度:涉及到任务状态管理、任务调度请求的发送与接收、具体任务的分配、任务的具体执行;(集群中哪些机器什么时候执行什么任务,所以又需要一个可以感知整个集群运行状态的配置中心); 配置中心:可以感知整个集群的状态、任务信息的注册。 摸清脉络:Scheduler的结构和核心模块 可以发现,Scheduler主要有以下三个部分: 调度器 (Scheduler):任务调度中心,负责管理任务的生命周期。接受任务注册,准时准确找出待触发的任务,进行任务拆分下发。找出与之关联的执行器并下发对应任务; 执行器 (Executor):接收调度任务,并将自身状态上报给调度器; 控制台 (Web 前端):负责配置执行器的信息以及调度任务的配置、任务状态、信息展示。 因此,我们可以用一句话解释清楚 Scheduler 所做的事情,即:在「指定时间」「通知执行器」以「指定方式」执行任务 这句话中包含了三个关键点,也分别代表着 Scheduler 的三个核心模块: 指定时间:任务的触发规则,如:每天早上8点、每周二、每月15号等。触发器模块(Launcher Cron)负责任务触发; 指定方式:任务的执行形式,如:单播任务-指定一个机器执行;广播任务-指定所有机器执行;分片任务-任务分阶段分批的执行。分派器模块(Assignment Cron)负责任务的执行方式; 通知执行器:将任务发送到指定执行器,执行任务。派遣器模块(Dispatcher Cron)负责任务的发送,采用流式通信,调度器以推送的方式将任务发送给执行器。 (编辑:ASP站长网) |
相关内容
网友评论
推荐文章
热点阅读