一种分布式任务的动态分配方法和系统技术方案

技术编号:34930171 阅读:17 留言:0更新日期:2022-09-15 07:25
本发明专利技术公开一种分布式任务的动态分配方法和系统,其中,分布式任务的动态分配方法包括:任务调度器根据任务列表中的任务和所有工作节点的资源信息,将任务分配至工作节点的任务执行器;任务执行器实时监测任务的执行状态,当任务的执行状态异常时向任务调度器汇报异常节点的任务异常信息;任务调度器当收到任务异常信息时,获取每个工作节点的资源信息和未执行任务信息;任务调度器确定召回的未执行任务,并根据资源信息和未执行任务信息制定任务分配方案;任务调度器根据任务分配方案,将召回的未执行任务和任务列表中的新增任务分配至工作节点。本发明专利技术的技术方案能解决现有技术中任务分配不合理,容易出现堵塞或工作节点的资源利用率低的问题。的资源利用率低的问题。的资源利用率低的问题。

【技术实现步骤摘要】
一种分布式任务的动态分配方法和系统


[0001]本专利技术涉及分布式存储
,尤其涉及一种分布式任务的动态分配方法和系统。

技术介绍

[0002]任务调度是指系统为自动完成特定任务,在约定的特定时刻分配和执行任务的过程。因为当前系统的架构逐步转变为分布式架构,即原来的单体结构被划分为若干服务,每个服务运行在不同的节点上,服务之间通过网络交互才能完成用户的业务处理任务,所以在分布式的系统环境中,任务在执行前必须按照一定的规则分配到具体的位置,这个过程称之为分布式任务调度。
[0003]现有的分布式任务调度,其系统架构如图1所示。在该系统架构中,所有服务器组成一个服务集群,服务集群中的服务器称为节点。任务调度器100部署在其中的一个节点,即调度器节点100上;任务执行器201有多个,分别部署在不同的工作节点200上。分布式任务调度在实现时按照如下步骤完成:首先,在每个工作节点200上启动任务执行器201;然后,任务调度器101从任务列表102中获取任务;再然后,任务调度器101将任务根据特定的规则传递给不同的任务执行器200;最后,任务执行器200执行相应任务。
[0004]现有的分布式任务调度方案,其侧重点均为如何确保任务调度器在任务执行前将不同的任务分配给不同的任务执行器,而任务执行器在获取任务后只是被动地执行任务。分配任务是耗时、耗网络资源的操作。当任务很多时为了提高工作效率,任务调度器会一次将多个任务同时分配给某一执行器。在目前的任务调度器实现上,大部分任务是简单的直接平均分配,另外有少部分任务会按照任务的预期执行时间、任务的类型、执行任务所需的CPU/内存消耗程度等数据以及节点资源状况进行分配。然而,不管任务如何分配都可能出现任务分配不合理,容易出现堵塞和节点资源利用率不高的问题,具体地:
[0005]1)即使按照任务的预期执行时间进行分配,当一批任务分配给某一任务执行器后,由于实际运行环境不同,任务的实际运行时间和其预估时间并不一致。这将导致在实际运行任务时,并不能像预期那样达到对节点资源最佳的使用。节点中部分任务执行器闲置,部分任务执行器拥堵,拥堵的任务将处于等待状态;而处于等待状态的任务也不会分配到其他节点中。
[0006]2)当某一任务被超前执行完毕后,其所在工作节点的任务执行器将被闲置,此时其他节点即使还有待执行的任务,但它们也只能等待,不能被任务调度器发送到空闲的工作节点进行执行。

技术实现思路

[0007]本专利技术提供一种分布式任务的动态分配方法和系统,旨在解决现有技术中任务分配不合理,容易出现堵塞,工作节点的资源利用率不高的问题。
[0008]为实现上述目的,根据本专利技术的第一方面,本专利技术提出了一种分布式任务的动态
分配方法,包括:
[0009]任务调度器根据任务列表中的任务和所有工作节点的资源信息,将任务分配至工作节点的任务执行器;
[0010]任务执行器实时监测任务的执行状态,当任务的执行状态异常时向任务调度器汇报异常节点的任务异常信息;
[0011]任务调度器当收到任务异常信息时,获取每个工作节点的资源信息和未执行任务信息;
[0012]任务调度器确定召回的未执行任务,并根据资源信息和未执行任务信息制定任务分配方案;
[0013]任务调度器根据任务分配方案,将召回的未执行任务和任务列表中的新增任务分配至工作节点。
[0014]优选的,上述动态分配方法中,异常节点的任务异常信息包括超时节点的任务超时信息;任务调度器确定召回的未执行任务并根据资源信息和未执行任务信息制定任务分配方案的步骤包括:
[0015]任务调度器当收到任务超时信息时,召回超时节点的未执行任务;
[0016]任务调度器根据除超时节点外每个工作节点的资源信息和未执行任务信息,制定超时节点的未执行任务和任务列表中新增任务的任务分配方案;
[0017]任务调度器按照任务分配方案,将未执行任务和新增任务统一分配至除超时节点外的工作节点。
[0018]优选的,上述动态分配方法中,任务调度器根据除任务完成节点外其他所有工作节点的资源信息和未执行任务信息,制定所有未执行任务和任务列表的新增任务的任务分配方案的步骤包括:
[0019]任务调度器使用资源信息和未执行任务信息,计算每个工作节点的任务执行速度;
[0020]任务调度器按照每个工作节点的任务执行速度,将未执行任务和新增任务分别分配至每个工作节点,以均衡每个工作节点的任务完成时间。
[0021]优选的,上述动态分配方法中,任务调度器根据任务列表中的任务和所有工作节点的资源信息,将任务分配至工作节点的任务执行器的步骤,包括:
[0022]任务调度器按照任务的消耗资源量和所有工作节点的资源信息,分别计算每个工作节点对每项任务的任务执行时间;
[0023]任务调度器,按照任务执行时间,分别分配任务至工作节点的任务执行器。
[0024]优选的,上述动态分配方法中,异常节点的任务异常信息包括任务完成节点的任务完成信息;任务调度器确定召回的未执行任务并根据资源信息和未执行任务信息制定任务分配方案的步骤包括:
[0025]任务调度器根据除任务完成节点外其他所有工作节点的资源信息和未执行任务信息,制定所有未执行任务和任务列表的新增任务的任务分配方案;
[0026]任务调度器判断任务分配方案分配的未执行任务是否仍在原工作节点中;
[0027]若未执行任务仍在原工作节点中,则任务调度器召回除仍在原工作节点的其他所有未执行任务;
[0028]任务调度器按照任务分配方案,分配除仍在原工作节点的其他所有未执行任务和新增任务至工作节点。
[0029]优选的,上述动态分配方法中,任务调度器根据除超时节点外每个工作节点的资源信息和未执行任务信息,制定超时节点的未执行任务和任务列表中新增任务的任务分配方案的步骤包括:
[0030]任务调度器使用资源信息和未执行任务信息,计算除超时节点外每个工作节点的现有任务完成时间;
[0031]任务调度器使用资源信息和每项未执行任务和新增任务的消耗资源量,分别计算除超时节点外每个工作节点分别对每项任务的任务执行时间;
[0032]任务调度器按照现有任务完成时间以及任务执行时间,分别分配未执行任务和新增任务,以均衡每个工作节点的任务完成时间。
[0033]优选的,上述动态分配方法中,任务调度器根据任务分配方案,将召回的未执行任务和任务列表中的新增任务分配至工作节点的步骤包括:
[0034]任务调度器将未执行任务和新增任务分配至工作节点的任务执行器;
[0035]任务执行器执行未执行任务和新增任务,并实时监测任务的执行状态,若监测到任务的执行状态存在异常时,重复汇报异常节点的任务异常信息的步骤。
[0036]根据本专利技术的第二方面,本专利技术还提供了一种分布式任务的动态分配系统,包括:
[0037]设置于调度器节点的任务列表和任务调度器本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分布式任务的动态分配方法,其特征在于,包括:任务调度器根据任务列表中的任务和所有工作节点的资源信息,将所述任务分配至工作节点的任务执行器;所述任务执行器实时监测所述任务的执行状态,当所述任务的执行状态异常时向所述任务调度器汇报异常节点的任务异常信息;所述任务调度器当收到所述任务异常信息时,获取每个工作节点的资源信息和未执行任务信息;所述任务调度器确定召回的未执行任务,并根据所述资源信息和未执行任务信息制定任务分配方案;所述任务调度器根据所述任务分配方案,将召回的所述未执行任务和所述任务列表中的新增任务分配至所述工作节点。2.根据权利要求1所述的动态分配方法,其特征在于,所述异常节点的任务异常信息包括超时节点的任务超时信息;所述任务调度器确定召回的未执行任务并根据所述资源信息和未执行任务信息制定任务分配方案的步骤,包括:所述任务调度器当收到所述任务超时信息时,召回所述超时节点的未执行任务;所述任务调度器根据除所述超时节点外每个工作节点的资源信息和未执行任务信息,制定所述超时节点的未执行任务和所述任务列表中新增任务的任务分配方案;所述任务调度器按照所述任务分配方案,将所述未执行任务和所述新增任务统一分配至除所述超时节点外的工作节点。3.根据权利要求2所述的动态分配方法,其特征在于,所述任务调度器根据除所述超时节点外每个工作节点的资源信息和未执行任务信息,制定所述超时节点的未执行任务和所述任务列表中新增任务的任务分配方案的步骤,包括:所述任务调度器使用所述资源信息和未执行任务信息,计算除所述超时节点外每个工作节点的现有任务完成时间;所述任务调度器使用所述资源信息和每项所述未执行任务和所述新增任务的消耗资源量,分别计算除所述超时节点外每个工作节点分别对每项任务的任务执行时间;所述任务调度器按照所述现有任务完成时间以及所述任务执行时间,分别分配所述未执行任务和新增任务,以均衡每个工作节点的任务完成时间。4.根据权利要求1所述的动态分配方法,其特征在于,所述异常节点的任务异常信息包括任务完成节点的任务完成信息;所述任务调度器确定召回的未执行任务并根据所述资源信息和未执行任务信息制定任务分配方案的步骤,包括:所述任务调度器根据除所述任务完成节点外其他所有工作节点的资源信息和未执行任务信息,制定所有未执行任务和所述任务列表的新增任务的任务分配方案;所述任务调度器判断所述任务分配方案分配的未执行任务是否仍在原工作节点中;若所述未执行任务仍在原工作节点中,则所述任务调度器召回除仍在原工作节点的其他所有未执行任务;所述任务调度器按照所述任务分配方案,分配所述除仍在原工作节点的其他所有未执行任务和所述新增任务至所述工作节点。5.根据权利要求4所述的动态分配方法,其特征在于,所述任务调度器根据除所述任务
完成节点外其他所有工作节点的资源信息和未执行任务信息,制定所有未执行任务和所述任务列表的新增任务的任务分配方案的步骤,包括:所述任务调度器使用所述资源信息和未执行任务信息,计算每个工作节...

【专利技术属性】
技术研发人员:王俊锋徐文豪王弘毅张凯
申请(专利权)人:北京志凌海纳科技有限公司
类型:发明
国别省市:

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

1