一种面向信创领域高效可靠的分布式任务调度方法及系统技术方案

技术编号:31981320 阅读:16 留言:0更新日期:2022-01-20 01:38
本发明专利技术公开了一种面向信创领域高效可靠的分布式任务调度方法及系统。本系统包括多个主从选举器构成的选举器集群,多个任务执行器构成的任务执行器集群;其中,所述选举器集群,用于对该任务执行器集群中的任务执行器进行选举,选举出一个任务执行器作为调度执行器,其余任务执行器作为工作执行器;所述调度执行器,用于从业务系统定时获取任务列表,然后进行任务拆分、任务下发,以及监控工作执行器的状态;所述工作执行器,用于根据收到的任务在该业务系统中执行对应的业务逻辑处理,并将处理结果返回为所述调度执行器。本发明专利技术具有保障机制完备、可靠性高,任务分片高效,任务并行执行效率高,业务系统接口简单易于接入。业务系统接口简单易于接入。业务系统接口简单易于接入。

【技术实现步骤摘要】
一种面向信创领域高效可靠的分布式任务调度方法及系统


[0001]本专利技术属于分布式集群场景下的任务调度
,特别涉及一种可简单接入的高效可靠的分布式任务调度方法及系统。

技术介绍

[0002]目前随着分布式解决方案需求不断增加,具体到信创领域,需要分布式集群快速、高效、可靠地处理大量任务,赋能各种业务场景。现有的调度方案要么架构复杂接入成本高,要么可靠性不高。因此研究一种面向信创领域简单高效可靠的分布式任务调度方法及系统是必要的。

技术实现思路

[0003]为了克服现有的调度方法及系统可靠度不高、不高效,接入不够简单的不足,本专利技术提供一种简单、高效、可靠的任务调度方法。进一步地提供一种可简单接入的任务调度系统方案。
[0004]为实现上述目的,本专利技术提供如下技术方案:
[0005]一种面向信创领域高效可靠的分布式任务调度方法,其步骤包括:
[0006]1)设置多个任务执行器构成一个任务执行器集群,设置多个主从选举器;
[0007]2)利用各所述主从选举器对该任务执行器集群中的任务执行器进行选举,选举出一个任务执行器作为调度执行器,其余任务执行器作为工作执行器;所述调度执行器,用于定时获取任务列表、任务拆分、任务下发、工作执行器状态监控;所述工作执行器用于执行收到的任务;
[0008]3)调度执行器从业务系统定时获取任务列表,再通过分片算法将任务分片之后将任务下发给工作执行器,工作执行器根据收到的任务在该业务系统中执行对应的业务逻辑处理,并将处理结果返回为所述调度执行器;当调度执行器失效时,通过各所述主从选举器重新选举产生新的调度执行器;当工作执行器失效时,根据任务下发方式执行对应的策略保障任务不丢失:a)如果任务下发方式为一致性协议算法,每个工作执行器由主从选举器提供存储区,当工作执行器故障时,调度执行器从出现故障的工作执行器对应的存储区回收故障工作执行器的任务,进行任务重新派发;b)如果任务下发方式为消息队列,根据消息队列提供的未消费队列的超时重试机制进行任务重新派发。
[0009]进一步的,所述任务执行器中包括一任务设置数据模型,其包括分配给工作执行器的最小任务数量、任务分片方法、工作执行器执行任务线程数量、主从选举器访问地址和任务下发方式。
[0010]进一步的,所述任务分片方法包括水平分片方法、循环分片方法和整体分片方法。
[0011]进一步的,所述水平分片方法为:首先根据任务执行器的数量确定分组数,然后将任务按照分组数与每个分组最少任务数,将任务连续地分配到一个分组后再进行下一个分组分配任务,直至任务分配完毕。
[0012]进一步的,所述循环分片方法为:首先根据任务执行器的数量确定分组数,然后将任务按照分组数与每组最少任务数的要求,将任务循环地在分组之间分配。
[0013]进一步的,所述整体分片方法为:将所有任务放在一个分组。
[0014]进一步的,所述调度执行器中设置有initJob接口、afterSharding接口;其中,initJob接口包括入口参数nodeNumber,用于设置工作执行器数量;afterSharding接口用于对成功分片的任务进行业务状态处理。
[0015]进一步的,所述工作执行器中设置有单任务处理接口和批处理任务接口;其中,当工作执行器调用单任务处理接口时,将任务Id作为单任务处理接口的入口参数,然后根据执行任务线程数量封装多线程处理逻辑;当工作执行器调用批量任务处理接口时,将任务列表作为批量任务处理接口的入口参数,然后进行同步单线程或异步多线程实现业务处理逻辑。
[0016]一种面向信创领域高效可靠的分布式任务调度系统,其特征在于,包括多个主从选举器构成的选举器集群,多个任务执行器构成的任务执行器集群;其中,
[0017]所述选举器集群,用于对该任务执行器集群中的任务执行器进行选举,选举出一个任务执行器作为调度执行器,其余任务执行器作为工作执行器;
[0018]所述调度执行器,用于从业务系统定时获取任务列表,然后进行任务拆分、任务下发,以及监控工作执行器的状态;
[0019]所述工作执行器,用于根据收到的任务在该业务系统中执行对应的业务逻辑处理,并将处理结果返回为所述调度执行器。
[0020]第一方面,本专利技术提出一种分布式任务调度的基础组件的划分方式,包括:
[0021]任务执行器(JobExecutor):任务调度和执行的服务节点。分为调度执行器(主节点),工作执行器(从节点)。
[0022]调度执行器(ScheduleExectuor):主节点具有排他性,有且只有一个,用于定时获取任务列表、任务拆分、任务下发、工作执行器状态监控等。特殊地当只有一个执行器时,可以既是调度执行器同时也是工作执行器。
[0023]工作执行器(WorkerExectuor):处理具体的业务,比如并行计算,图片转换等,可以多个。
[0024]主从选举器(Ballot):对任务执行器集群选举产生调度执行器(主节点),其它均为工作执行器(从节点)。具有相同的任务名称的工作执行器,自动编为一组执行器集群。选举方式是公知的,由具体的选举器提供比如:ZooKeeper,ETCD等。Zookeepr简称zk,是一个分布式的,开放源码的分布式应用程序协调服务。Etcd:是一个高可用的Key/Value存储系统,主要用于分享配置和服务发现,功能上类似于Zookeeper。mq:MQ(MessageQueue)消息队列,是基础数据结构中“先进先出”的一种数据结构。一般用来解决应用解耦,异步消息,流量削峰等问题,实现高性能,高可用,可伸缩和最终一致性架构。
[0025]通过清晰地划分各个组件有利于系统模块化,提高系统内聚度。
[0026]第二方面,本专利技术提出一种分布式任务调度的任务执行器对象的抽象设计,包含构造函数接口与任务设置数据模型:
[0027]构造函数接口在任务执行器初始化的时候在任务执行器中执行:
[0028]public JobExecutor(String taskName,Job job,String cron)
[0029]taskName:参数名称,选举时根据任务名称分组。job:任务设置数据模型。cron:任务调度执行周期Cron表达式(即计划任务表达式)。
[0030]任务设置(Job)数据模型:
[0031][0032]第三方面,本专利技术提出三种任务分片方法,包括:
[0033]水平分片方法:首先根据任务执行器的数量确定分组数,然后将任务按照分组数与每组最少任务数的要求,连续地分配到每一个分组。给当前分组分配完之后才给下一个分组分配任务,直至任务分配完毕。
[0034]例如,对数组[0,1,2,3,4,5,6,7,8,9]用水平分片算法分两片的结果为:
[0035][0,1,2,3,4][0036][5,6,7,8,9][0037]循环分片方法:首先根据任务执行器的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种面向信创领域高效可靠的分布式任务调度方法,其步骤包括:1)设置多个任务执行器构成一个任务执行器集群,设置多个主从选举器;2)利用各所述主从选举器对该任务执行器集群中的任务执行器进行选举,选举出一个任务执行器作为调度执行器,其余任务执行器作为工作执行器;所述调度执行器,用于定时获取任务列表、任务拆分、任务下发、工作执行器状态监控;所述工作执行器用于执行收到的任务;3)调度执行器从业务系统定时获取任务列表,再通过分片算法将任务分片之后将任务下发给工作执行器,工作执行器根据收到的任务在该业务系统中执行对应的业务逻辑处理,并将处理结果返回为所述调度执行器;当调度执行器失效时,通过各所述主从选举器重新选举产生新的调度执行器;当工作执行器失效时,根据任务下发方式执行对应的策略保障任务不丢失:a)如果任务下发方式为一致性协议算法,每个工作执行器由主从选举器提供存储区,当工作执行器故障时,调度执行器从出现故障的工作执行器对应的存储区回收故障工作执行器的任务,进行任务重新派发;b)如果任务下发方式为消息队列,根据消息队列提供的未消费队列的超时重试机制进行任务重新派发。2.如权利要求1所述的方法,其特征在于,所述任务执行器中包括一任务设置数据模型,其包括分配给工作执行器的最小任务数量、任务分片方法、工作执行器执行任务线程数量、主从选举器访问地址和任务下发方式。3.如权利要求2所述的方法,其特征在于,所述任务分片方法包括水平分片方法、循环分片方法和整体分片方法。4.如权利要求3所述的方法,其特征在于,所述水平分片方法为:首先根据任务执行器的数量确定分组数,然后将任务按照分组数与每个分组最少任务数,将任务连续地分配到一个分组后再进行下一个分组分配任务,直至任务分配完毕。5.如权利要求3所述的方法,其特征在于,所述循环分片方法为:首先根据任务执行器的数量确定分组数,然后将任务按照分组数与每组最少任务数的要求,将任务循环地在分组之间分配。...

【专利技术属性】
技术研发人员:王伟东郭家鑫胡启晋刘志波贾大玮王金生杨宇
申请(专利权)人:中国软件与技术服务股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1