分布式任务的均衡调度中心、方法、系统和装置制造方法及图纸

技术编号:17211731 阅读:39 留言:0更新日期:2018-02-07 22:59
本发明专利技术公开了一种分布式任务的均衡调度中心、方法、系统和装置,所述方法包括:按照功能或类型创建多个任务组,为每个任务组配置对应的调度策略;为每个任务组定制多个调度计划,每个调度计划对应一个可执行任务集合;监控每个任务组的当前任务执行量,根据配置参数,计算得到每个调度计划的任务调度量;根据每个任务组的当前任务执行量,根据配置参数,计算得到每个任务主机的任务下发量;根据所述每个任务主机的下发量,为对应的任务主机下发可执行任务。所述调度中心包括配置模块、任务调度模块、任务下发模块、任务缓存和监控模块。本发明专利技术有效地提高了任务执行效率和任务主机的利用率,均衡了任务主机的负载。

Distributed task equilibrium scheduling center, method, system and device

【技术实现步骤摘要】
分布式任务的均衡调度中心、方法、系统和装置
本专利技术涉及数据传输
,具体地说,涉及一种分布式任务的均衡调度中心、方法、系统和装置。
技术介绍
随着计算机、网络信息技术的发展,在一些企业级系统中,大量的任务分布在不同的任务主机完成。如何调度这些任务,合理地分配给相应的任务主机则成为了重要的技术问题。目前,任务调度执行主要分为如下两种:串行单节点任务调度,即单机完成任务的调度和执行。特点实是:实现简单,易于维护。缺点是:但当有大量任务需要调度和执行时,单机压力大,以至无法保证任务履约完成。分布式任务调度,即多机并行调度和执行任务。特点是:充分利用多机硬件资源,可负载大量任务,当任务超过负载时方便横向扩展,有效的解决串行单节点任务调度的不足。目前,企业级任务调度基本以分布式调度为主,并提供各种调度策略、任务同步等机制。例如:采用Quartz轻量级调度框架,主要针对时间周期和时间点的任务调度。或采用ScheduledExecutor,其是Java本身提供的周期性调度线程池,可以实现固定时间周期的任务执行。或者通过ZooKeeper框架对分布式任务执行同步任务,防止重复或无序执行。例如,现有技术采用如下的技术方案实现分布式任务的调度:定义一个或多个可执行的任务;配置每个可执行任务的触发周期或执行时间点;启动Quartz、ScheduledExecutor或其他调度框架,读取调度配置,等待触发任务执行;调度框架触发任务执行,随即进入下一个任务调度周期。可执行任务通过ZooKeeper进行同步控制,防止多机重复执行。然而现有技术中的技术方案只使用调度框架,并不能对任务的执行情况进行监控,因而对分布式多机执行的支持不理想,并且容易造成某些主机任务的积压,负载不均衡。
技术实现思路
本专利技术要解决的技术问题在于,根据现有技术的不足,提供一种分布式任务的均衡调度中心、方法、系统和装置,灵活配置、调整调度策略及任务下发参数,从而均衡各任务主机的任务量。为了解决上述技术问题,本专利技术提供了一种分布式任务的均衡调度方法,包括:按照功能或类型创建多个任务组,为每个任务组配置对应的调度策略;为每个任务组定制多个调度计划,每个调度计划对应一个可执行任务集合;监控每个任务组的当前任务执行量,根据配置参数,计算得到每个调度计划的任务调度量,并将与所述任务调度量对应数量的任务载入任务缓存中的任务队列;根据每个任务组的当前任务执行量和配置参数,计算得到每个任务主机的任务下发量;根据所述每个任务主机的下发量,从所述任务缓存中对应的任务队列取出可执行任务下发给相应的任务主机。其中,所述调度策略至少包括任务主机的分组配置;所述调度计划至少包括调度周期和调度权重。优选地,所述监控每个任务组的当前任务执行量的步骤包括:接收任务主机的任务执行反馈信息,获得一个时间段的总任务执行量;计算所述时间段内的平均任务执行量;根据预设的微调系数,将平均任务执行量乘以所述微调系数得到每个任务组的当前任务执行量其中,所述微调系数的取值为0.8-1.2。优选地,所述计算得到每个调度计划的任务调度量的步骤包括:根据缓存中当前的任务队列长度,计算出所述当前任务队列长度与最大任务队列长度的差值Qe;在保证不超过最大调度量和最大队列长度的情况下,和Qe取最大值作为本次任务调度总量Qt;根据求和公式计算每个任务组的多个调度计划的权重总和Wsum;依据每个调度计划的权重Wi和权重总和Wsum的比值及本次任务调度总量Qt,根据公式1-1计算每个调度计划的调度量Qi,Qi=Qt×(Wi÷Wsum)1-1。优选地,如果所述任务组中的多个调度计划的权重互不相同,所述计算得到每个任务主机的任务下发量的步骤包括:根据求和公式计算任务组中多个调度计划的权重总和Wsum;依据当前任务执行量、权重与权重总和,根据公式2-1计算出针对每个调度计划的下发量Cai,依据当前任务队列长度,算出每个任务主机平均需下发量在和Cai中取最小的值作为任务主机下发量C;如果所述任务组中的多个调度中计划中有相同的权重,所述计算得到每个任务主机的任务下发量C的步骤包括:计算任务组中多个调度计划权重去重后的权重总和其中,所述m为去重后的权重个数,Wi'为第i个权重;依据当前任务执行量、去重权重与权重总和,根据公式2-2计算出每个权重的下发量C'w,计算相同权重下的调度计划的周期总和其中,所述Ii为第i个调度计划的调度周期;根据公式2-3计算相同权重下的调度计划的周期反比Ri,Ri=I'sum÷Ii2-3;根据公式2-4计算相同权重下的调度计划的周期反比之和,得到反比总和Rsum,根据公式2-5,依据相同权重下的调度计划的周期反比Ri及反比总和Rsum和所述权重的下发量Cw得到该调度计划在该周期的任务下发量C'ai,C'ai=C'w×(Ri÷Rsum)2-5;依据当前任务队列长度,算出每个任务主机平均需下发数量在和C'ai中取最小的值作为任务主机下发量C。优选地,所述的分布式任务的均衡调度方法还包括为所述待执行任务设置同步锁和在所述任务完成后移除所述同步锁的步骤。优选地,任务主机在执行任务前,通过执行Redis数据库中的setnx(key,value)命令为所述任务设置所述同步锁。本专利技术还提供了一种分布式任务的均衡调度中心,其中,包括:配置模块,用于按照功能或类型创建多个任务组,为每个任务组配置对应的调度策略;为每个任务组定制多个调度计划,根据所述调度计划将所述任务组划分为相应的可执行任务集合;任务调度模块,根据任务执行反馈信息及调度计划的配置参数,计算得到每个调度计划的调度量,并将与所述任务调度量对应数量的任务载入任务缓存中的任务队列;任务下发模块,根据任务执行反馈信息及任务组中调度计划的配置参数,计算得到每个任务主机的下发量,根据所述下发量,从所述任务缓存中对应的任务队列取出可执行任务下发给相应的任务主机;和监控模块,用于接收任务主机反馈信息,获得设定时间段的任务执行量,并计算所述时间段内的每个任务组的任务执行量。优选地,所述任务调度模块包括:第一数据读取单元,用于读取调度策略和调度计划的设置参数及从所述监控模块得到的任务执行量;第一计算单元,用于根据预设调度算法,依次从所述第一数据读取单元中取得相应的参数数据,根据相应的算法流程计算得到每个调度计划的调度量;和任务载入单元,根据每个调度计划的调度量,将所述任务载入缓存中的任务队列。优选地,所述任务调度模块还包括:同步锁标识设置单元,用于为已调度好的可执行任务设置同步锁标识。优选地,所述任务下发模块包括:第二数据读取单元,用于读取所述监控模块得到的任务执行量及调度策略和调度计划的设置参数;第二计算单元,用于根据预设的下发算法,依次从所述第二数据读取单元中取得相应的参数数据,根据相应的算法流程计算得到每个任务主机下发量;和任务下发单元,根据每个任务主机下发量,从所述任务缓存中对应的任务队列取出可执行任务下发给相应的任务主机。本专利技术还提供了一种分布式任务的均衡调度装置,其中,包括存储器和处理器,所述存储器用于存储数据和指令,所述处理器根据所述指令配置如下:按照功能或类型创建多个任务组,为每个任务组配置对应的调度策略;为每个任务组定制多个调度计划,每个调度计划对应一个本文档来自技高网
...
分布式任务的均衡调度中心、方法、系统和装置

【技术保护点】
一种分布式任务的均衡调度方法,包括:按照功能或类型创建多个任务组,为每个任务组配置对应的调度策略;为每个任务组定制多个调度计划,每个调度计划对应一个可执行任务集合;监控每个任务组的当前任务执行量,根据配置参数,计算得到每个调度计划的任务调度量,并将与所述任务调度量对应数量的任务载入任务缓存中的任务队列;根据每个任务组的当前任务执行量和配置参数,计算得到每个任务主机的任务下发量;根据所述每个任务主机的下发量,从所述任务缓存中对应的任务队列取出可执行任务下发给相应的任务主机。

【技术特征摘要】
1.一种分布式任务的均衡调度方法,包括:按照功能或类型创建多个任务组,为每个任务组配置对应的调度策略;为每个任务组定制多个调度计划,每个调度计划对应一个可执行任务集合;监控每个任务组的当前任务执行量,根据配置参数,计算得到每个调度计划的任务调度量,并将与所述任务调度量对应数量的任务载入任务缓存中的任务队列;根据每个任务组的当前任务执行量和配置参数,计算得到每个任务主机的任务下发量;根据所述每个任务主机的下发量,从所述任务缓存中对应的任务队列取出可执行任务下发给相应的任务主机。2.如权利要求1所述的分布式任务的均衡调度方法,其中,所述调度策略至少包括任务主机的分组配置;所述调度计划至少包括调度周期和调度权重。3.如权利要求2所述的分布式任务的均衡调度方法,其中,所述监控每个任务组的当前任务执行量的步骤包括:接收任务主机的任务执行反馈信息,获得一个时间段的总任务执行量;计算所述时间段内的平均任务执行量;根据预设的微调系数,将平均任务执行量乘以所述微调系数得到每个任务组的当前任务执行量其中,所述微调系数的取值为0.8-1.2。4.如权利要求3所述的分布式任务的均衡调度方法,其中,所述计算得到每个调度计划的任务调度量的步骤包括:根据缓存中当前的任务队列长度,计算出所述当前任务队列长度与最大任务队列长度的差值Qe;在保证不超过最大调度量和最大队列长度的情况下,和Qe取最大值作为本次任务调度总量Qt;根据求和公式计算每个任务组的多个调度计划的权重总和Wsum;依据每个调度计划的权重Wi和权重总和Wsum的比值及本次任务调度总量Qt,根据公式1-1计算每个调度计划的调度量Qi,Qi=Qt×(Wi÷Wsum)1-1。5.如权利要求3所述的分布式任务的均衡调度方法,其中,如果所述任务组中的多个调度计划的权重互不相同,所述计算得到每个任务主机的任务下发量的步骤包括:根据求和公式计算任务组中多个调度计划的权重总和Wsum;依据当前任务执行量、权重与权重总和,根据公式2-1计算出针对每个调度计划的下发量Cai,依据当前任务队列长度,算出每个任务主机平均需下发量在和Cai中取最小的值作为任务主机下发量C;如果所述任务组中的多个调度中计划中有相同的权重,所述计算得到每个任务主机的任务下发量C的步骤包括:计算任务组中多个调度计划权重去重后的权重总和其中,所述m为去重后的权重个数,Wi'为第i个权重;依据当前任务执行量、去重权重与权重总和,根据公式2-2计算出每个权重的下发量C'w,计算相同权重下的调度计划的周期总和其中,所述Ii为第i个调度计划的调度周期;根据公式2-3计算相同权重下的调度计划的周期反比Ri,Ri=I'sum÷Ii2-3;根据公式2-4计算相同权重下的调度计划的周期反比之和,得到反比总和Rsum,根据公式2-5,依据相同权重下的调度计划的周期反比Ri及反比总和Rsum和所述权重的下发量Cw得到该调度计划在该周期的任务下发量C'ai,C'ai=C'w×(Ri÷Rsum)2-5;依据当前任务队列长度,算出每个任务主机平均需下发数量在和C'ai中取最小的值作为任务主机下发量C。6.如权利要求1所述的分布式任务的均衡调度方法,其中,还包括为所述待执...

【专利技术属性】
技术研发人员:安伟佳
申请(专利权)人:北京京东尚科信息技术有限公司北京京东世纪贸易有限公司
类型:发明
国别省市:北京,11

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

1