一种分布式高可用任务调度方法及系统
文献发布时间:2023-06-19 10:19:37
技术领域
本发明属于在线服务任务调度技术领域,具体涉及一种分布式高可用任务调度方法及系统。
背景技术
大部分公司在使用调度任务时都是使用目前开源的一些调度工具,需要引入相关jar包、增加配置文件、开发对应代码等一系列工作,耗时耗力,成本非常高;目前,市面上流行的调度方法基本以任务为基点进行分布式节点分发,如某一分布式节点出现故障或某一任务出现异常,则此任务批次则均失败,影响范围较大;
目前的调度方案分布式资源利用有限,数据粒度较粗,未能充分利用分布式资源,处理性能不大。
发明内容
有鉴于此,本发明提出一种分布式高可用任务调度方法及系统。
为了达到目的,本发明提供的技术方案为:
本发明涉及一种分布式高可用任务调度方法,其包括以下步骤:
(1)线程管理器根据调度中心配置调度任务数及根据此任务历史执行情况计算分配调度任务线程数并启动隔离线程池;
(2)协调处理器从线程池获取一个线程通过暴露任务数据单元批量获取接口批量获取任务数据单元,发送至任务分发器;
(3)任务分发器将任务数据单元以先进先出的原则发送至任务分发器放置队列;
(4)任务分发器根据调度策略及各节点的处理能力动态进行分发执行任务至协调处理器;
(5)协调处理器从线程管理器获取线程进行任务数据单元处理;
(6)协调处理器将此次任务执行情况发送至任务分析器进行分析,并将失败任务数据单元发送至任务分发器放置队列的队尾;
(7)任务分析器根据任务执行情况分析计算各节点支撑能力并告知任务分发器;
(8)任务分析器将处理失败任务数进行总结分析和通过监控中心报警。
优选地,调度中心调度任务数据储存于zookeeper集群中,通过zookeeper集群协调及恢复调度任务数据。
优选地,任务数据单元通过业务处理模块执行,并将执行情况反馈给协调处理器。
优选地,根据各节点支撑能力和失败任务数据单元的原因规划重试策略,对失败任务数据单元重新分发处理。
一种分布式高可用任务调度系统,其包括调度中心系统、业务系统和zookeeper集群;
所述的调度中心系统包括任务发布器、协调处理器、线程管理器和任务分析器;
业务系统包括多个业务处理模块,业务处理模块通过暴露任务数据单元处理接口从调度中心系统获取待处理任务数据单元并执行任务数据单元;
zookeeper集群用于对调度中心系统中的文件进行储存保证调度中心系统任务数据的一致性;
线程管理器用于配置调度任务数,计算分配调度任务线程数并启动隔离线程池;
协调处理器用于获取任务数据单元,发送至任务分发器,并将任务执行情况发送至任务分析器;
任务发布器用于分发执行任务至协调处理器;
任务分析器用于分析计算各节点支撑能力,告知任务分发器并将处理失败的任务数进行总结分析。
优选地,所述的任务分析器连接监控中心,将处理失败的任务数反馈给监控中心,监控中心发出报警信息。
采用本发明提供的技术方案,与现有技术相比,具有如下有益效果:
1、本发明大大减少系统调度开发工作量,降低企业开发的成本,提高企业生产效率。
2、本发明中调度任务细化至任务数据单元,任务数据单元间互相隔离,分布式环境下以任务数据单元进行分发处理,极大的提升调度任务的处理效率以及故障处理能力。
3、本发明中如果执行器集群中某一台机器故障,或某一任务数据单元出现处理失败,调度中心系统将触发故障切换以及重试策略,因调度中心系统均以任务数据单元分发,此数据单元出现故障不会影响到此批次下其他数据单元,切换将更加灵活与可靠。
4、本发明规则配置灵活,调度策略齐全,可动态调整任务数据单元的执行策略及中断策略,更好的保障系统的稳定性以及提升整体调度效率。
5、本发明中业务系统无感知0代码开发,低耦合,仅需调度中心系统配置调度策略即可完成调度任务,方便快捷,功能友好。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明方法流程图;
图2为本发明系统框图;
示意图中的标注说明:
1-调度中心系统;2-业务系统;3-zookeeper群集;11-任务发布器;12-协调处理器;13-线程管理器;14-任务分析器;15-监控中心。
具体实施方式
为进一步了解本发明的内容,结合实施例对本发明作详细描述,以下实施例用于说明本发明,但不用来限制本发明的范围。
实施例1
参照图1,本实施例涉及一种分布式高可用任务调度方法,其包括以下步骤:
(1)线程管理器根据调度中心配置调度任务数及根据此任务历史执行情况计算分配调度任务线程数并启动隔离线程池;
(2)协调处理器从线程池获取一个线程通过暴露任务数据单元批量获取接口批量获取任务数据单元,发送至任务分发器;
(3)任务分发器将任务数据单元以先进先出的原则发送至任务分发器放置队列;
(4)任务分发器根据调度策略及各节点的处理能力动态进行分发执行任务至协调处理器;
(5)协调处理器从线程管理器获取线程进行任务数据单元处理;
(6)协调处理器将此次任务执行情况发送至任务分析器进行分析,并将失败任务数据单元发送至任务分发器放置队列的队尾;
(7)任务分析器根据任务执行情况分析计算各节点支撑能力并告知任务分发器;
(8)任务分析器将处理失败任务数进行总结分析和通过监控中心报警。
调度中心调度任务数据储存于zookeeper集群中,通过zookeeper集群协调及恢复调度任务数据。保证分布式环境中调度中心系统任务数据的一致性,同时保障了分布式环境下的协调及崩溃恢复的能力。
任务数据单元通过业务处理模块执行,并将执行情况反馈给协调处理器。
根据各节点支撑能力和失败任务数据单元的原因规划重试策略,对失败任务数据单元重新分发处理。
本发明中调度任务细化至任务数据单元,任务数据单元间互相隔离,分布式环境下以任务数据单元进行分发处理,极大的提升调度任务的处理效率以及故障处理能力。而且如果执行器集群中某一台机器故障,或某一任务数据单元出现处理失败,调度中心系统将触发故障切换以及重试策略,因调度中心系统均以任务数据单元分发,此数据单元出现故障不会影响到此批次下其他数据单元,切换将更加灵活与可靠。
实施例2
参照图2,本实施例涉及一种分布式高可用任务调度系统,其包括调度中心系统1、业务系统2和zookeeper集群3;
所述的调度中心系统1包括任务发布器11、协调处理器12、线程管理器13和任务分析器14;
业务系统2包括多个业务处理模块,业务处理模块通过暴露任务数据单元处理接口从调度中心系统1获取待处理任务数据单元并执行任务数据单元;
zookeeper集群3用于对调度中心系统1中的文件进行储存保证调度中心系统任务数据的一致性;
线程管理器13用于配置调度任务数,计算分配调度任务线程数并启动隔离线程池;
协调处理器12用于获取任务数据单元,发送至任务分发器11,并将任务执行情况发送至任务分析器14;
任务发布器11用于分发执行任务至协调处理器12;
任务分析器14用于分析计算各节点支撑能力,告知任务分发器11并将处理失败的任务数进行总结分析。
所述的任务分析器14连接监控中心15,将处理失败的任务数反馈给监控中心15,监控中心15发出报警信息。
以上示意性的对本发明及其实施方式进行了描述,该描述没有限制性,附图中所示的也只是本发明的实施方案,实际的结构并不局限于此。所以本领域的普通技术人员受其启示,在不脱离本发明创造宗旨的情况下,不经创造性的设计出与该技术方案相似的结构方式及实施例,均应属于本发明的保护范围。
- 一种分布式高可用任务调度方法及系统
- 一种基于分布式对等架构设计的高可用任务调度方法