掌桥专利:专业的专利平台
掌桥专利
首页

一种分布式负载均衡的任务调度方法及装置

文献发布时间:2023-06-19 12:24:27


一种分布式负载均衡的任务调度方法及装置

技术领域

本发明涉及金融科技(Fintech)领域,尤其涉及一种分布式负载均衡的任务调度方法及装置。

背景技术

随着计算机技术的发展,越来越多的技术(例如:区块链、云计算或大数据)应用在金融领域,传统金融业正在逐步向金融科技转变,大数据技术也不例外,但由于金融、支付行业的安全性、实时性要求,也对大数据技术中任务调度方法提出了更高的要求。

目前,分布式任务调度方法包括以下三种方法:

1、Quartz Job scheduler:由Java编写的开源任务调度框,用于实现任务和触发器的多对多的关系,能把多个任务与不同的触发器进行关联。

2、Elastic-job:弹性分布式任务调度系统,基于数据库的分布式功能,采用Zookeeper实现注册中心,用于注册,控制和协调分布式任务执行。

3、Saturn:基于Zookeeper的集群架构实现的任务调度。用于作业管理、统计报表展现,系统配置等功能。

但是,对于第一种方法(Quartz Job scheduler)实现的分布式任务调度,各节点之间的负载存在不均衡的问题。对于第二种方法(Elastic-job)和第三种方法(Saturn)实现的分布式任务调度,二者是基于集群架构,集群架构需要在多个调度服务器继续参与,分布式系统复杂,无法实现轻量级的任务调度。

最重要的是,现有技术中无法在进行实现各节点负载均衡的基础上,针对任务类型来灵活的选择执行任务的节点,选择节点灵活性差,准确性低。

因此,现需要一种任务调度方法,来实现各节点负载均衡的基础上,增加选择节点的灵活性和准确性。

发明内容

本发明实施例提供一种分布式负载均衡的任务调度方法及装置,用于实现各节点负载均衡,且增加选择节点的灵活性和准确性。

第一方面,本发明实施例提供一种分布式负载均衡的任务调度方法,包括:

调度中心从节点的各性能指标中确定出与待执行任务的任务类型匹配的关键性能指标;

所述调度中心基于各节点的节点监视器采集的所述关键性能指标的性能数据,确定所述各节点在所述关键性能指标下的资源利用率;

所述调度中心确定与所述资源利用率匹配的权重计算规则;其中,所述权重计算规则中所述关键性能指标的指标权重与所述资源利用率正相关;所述权重计算规则中非关键性能指标的指标权重与所述资源利用率负相关;

所述调度中心基于各节点的节点监视器采集的各性能指标的性能数据,确定各节点在各性能指标下的加权权重;

所述调度中心针对任一节点,基于所述权重计算规则及所述节点在各性能指标下的加权权重,确定所述节点的调度权重;

所述调度中心根据各节点的述调度权重,确定执行所述待执行任务的节点。

上述技术方案中,在选择执行待执行任务的节点时,会根据任务类型确定关键性能指标,以关键性能指标为基础,结合其他性能指标下的加权权重来确定各节点的调度权重,因此增加了选择节点的灵活性、准确性和可靠性,具体的,根据资源利用率匹配权重计算规则,相当于匹配关键性能指标的指标权重与非关键性能指标的指标权重,进而得到调度权重,以此增加选择节点的准确性和全面性。

所述调度中心基于各节点的节点监视器采集的所述关键性能指标的性能数据,确定所述各节点在所述关键性能指标下的资源利用率,包括:

针对任一节点,所述调度中心根据所述节点在所述关键性能指标下的最大可用资源及实际可用资源,确定所述节点在所述关键性能指标下的单体资源利用率;

所述调度中心根据各节点在所述关键性能指标下的单体资源利用率,确定所述各节点在所述关键性能指标下的资源利用率。

上述技术方案中,针对关键性能指标,根据所有节点的最大数据和实际可用数据来确定资源利用率,可以体现出所有节点的使用情况,其中,资源利用率用于匹配权重计算规则,以此,来提升匹配权重计算规则的全面性和准确性。

所述调度中心基于各节点的节点监视器采集的各性能指标的性能数据,确定各节点在各性能指标下的加权权重,包括:

针对任一性能指标,所述调度中心将各节点在所述性能指标下的实际可用资源进行排序,将排序结果划分为多个区间;

根据所述节点所在区间的预设值,确定所述节点在所述性能指标下的加权权重。

上述技术方案中,通过划分区间,来减少对每个节点赋予加权权重的复杂程度,通过排序赋予加权权重来区分当前各节点针对任一性能指标的运行情况,以在后续选择节点时,选择出运行情况良好的节点,以增加选择节点的准确性。

所述调度中心针对任一节点,基于所述权重计算规则及所述节点在各性能指标下的加权权重,确定所述节点的调度权重,包括:

所述调度中心针对任一节点,从任务调度数据库获取所述节点在上一任务调度中的调度权重;根据上一任务调度中的调度权重、各性能指标的指标权重及各性能指标的加权权重,确定所述节点的调度权重。

上述技术方案中,通过引入上一任务调度中的调度权重来确定节点的性能情况,若上一任务调度中的调度权重大,则表明节点的性能好,执行任务效率高,若上一任务调度中的调度权重小,则表明节点的性能差,执行任务效率低,以此来确定出性能较好的节点,以增加选择节点的准确性。

可选的,所述权重计算规则为多个;

在资源利用率高于设定阈值时,各性能指标的指标权重相同;

在所述资源利用率低于所述设定阈值时,关键性能指标的指标权重高于非关键性能指标的指标权重。

上述技术方案中,权重计算规则中包括关键性能指标的指标权重和非关键性能指标的指标权重,用以表明性能指标的重要程度,以此实现针对任务类型来选择节点,提升了选择节点的灵活性和准确性。

可选的,确定执行所述待执行任务的节点之后,还包括:

所述调度中心根据降低调整规则,调整执行所述待执行任务的节点的调度权重,得到执行所述待执行任务的节点的上一任务调度中的调度权重。

上述技术方案中,对于被确定执行待执行任务的节点,通过降低节点的调度权重,以使降低后的调度权重用于下一次选择节点时的调度权重,以防止调度权重无限增大,导致的其余节点无法被选中的问题。

可选的,同一节点设置有两个互为主备的节点监视器;

针对任一节点监视器,节点监控中心确定所述节点监视器异常后,向所述节点监视器发送覆盖文件;所述覆盖文件用于指示所述节点监视器重新启动;在确定互为主备的节点监视器均重启失败后,发出告警信息。

上述技术方案中,实时检测节点监视器,防止各节点的各性能指标的性能数据未实时更新,即非实时的数据,减少出现选择节点异常的概率,增加选择节点的准确性。

第二方面,本发明实施例提供一种分布式负载均衡的任务调度装置,包括:

匹配模块,用于从节点的各性能指标中确定出与待执行任务的任务类型匹配的关键性能指标;

处理模块,用于基于各节点的节点监视器采集的所述关键性能指标的性能数据,确定所述各节点在所述关键性能指标下的资源利用率;

确定与所述资源利用率匹配的权重计算规则;其中,所述权重计算规则中所述关键性能指标的指标权重与所述资源利用率正相关;所述权重计算规则中非关键性能指标的指标权重与所述资源利用率负相关;

基于各节点的节点监视器采集的各性能指标的性能数据,确定各节点在各性能指标下的加权权重;

针对任一节点,基于所述权重计算规则及所述节点在各性能指标下的加权权重,确定所述节点的调度权重;

根据各节点的述调度权重,确定执行所述待执行任务的节点。

可选的,所述处理模块具体用于:

针对任一节点,根据所述节点在所述关键性能指标下的最大可用资源及实际可用资源,确定所述节点在所述关键性能指标下的单体资源利用率;

根据各节点在所述关键性能指标下的单体资源利用率,确定所述各节点在所述关键性能指标下的资源利用率。

可选的,所述处理模块具体用于:

针对任一性能指标,将各节点在所述性能指标下的实际可用资源进行排序,将排序结果划分为多个区间;

根据所述节点所在区间的预设值,确定所述节点在所述性能指标下的加权权重。

可选的,所述处理模块具体用于:

针对任一节点,从任务调度数据库获取所述节点在上一任务调度中的调度权重;

根据上一任务调度中的调度权重、各性能指标的指标权重及各性能指标的加权权重,确定所述节点的调度权重。

可选的,所述权重计算规则为多个;

在资源利用率高于设定阈值时,各性能指标的指标权重相同;

在所述资源利用率低于所述设定阈值时,关键性能指标的指标权重高于非关键性能指标的指标权重。

可选的,所述处理模块还用于:

确定执行所述待执行任务的节点之后,根据降低调整规则,调整执行所述待执行任务的节点的调度权重,得到执行所述待执行任务的节点的上一任务调度中的调度权重。

可选的,所述处理模块还用于:

确定执行所述待执行任务的节点之后,同一节点设置有两个互为主备的节点监视器;

针对任一节点监视器,节点监控中心确定所述节点监视器异常后,向所述节点监视器发送覆盖文件;所述覆盖文件用于指示所述节点监视器重新启动;在确定互为主备的节点监视器均重启失败后,发出告警信息。

第三方面,本发明实施例还提供一种计算机设备,包括:

存储器,用于存储程序指令;

处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述分布式负载均衡的任务调度方法。

第四方面,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行上述分布式负载均衡的任务调度方法。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种系统架构示意图;

图2为本发明实施例提供的一种分布式负载均衡的任务调度方法的流程示意图;

图3为本发明实施例提供的一种任务生成的示意图;

图4为本发明实施例提供的一种执行任务的示意图;

图5为本发明实施例提供的一种分布式负载均衡的任务调度装置的结构示意图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

现有技术中,分布式任务调度方法一方面存在不均衡的问题。另一方面基于集群架构实现的分布式任务调度方法,在进行负载均衡时,是以服务器为单位进行负载均衡的,但是,集群架构需要在多个服务器继续参与,分布式系统复杂,无法实现轻量级的任务调度。

且,无论现有技术中的哪种方法,均无法在进行各节点负载均衡时,针对任务类型来灵活的选择执行任务的节点,选择节点灵活性差,准确性低。

因此,现需要一种任务调度方法,基于一个调度服务器,来实现轻量级的针对任务类型选择执行任务的节点,增加选择节点的灵活性和准确性。

图1示例性的示出了本发明实施例所适用的一种系统架构,该系统架构包括任务调度数据库110、调度中心120、节点监视中心130和业务处理数据库160。

图1中示例性的示出了3个分布式节点,分别是节点a141、节点b142和节点c143,还示出了分布式节点对应的节点监视器,分别包括节点a监视器151、节点b监视器152和节点c监视器153,需要说明的是,本发明为示例性的示出三个分布式节点,再此不作具体的数量限定,且针对任一节点示出的监视器也不做具体的数量限定,例如,针对节点a141的监视器,可以为2个、3个等。

其中,任务调度数据库110用于获取节点监视中心130周期性上报的各节点的各性能指标的性能数据,并将其存储。

调度中心120用于获取某一节点上报的任务类型,并根据任务类型匹配出关键性能指标,然后在任务调度数据库110中各节点的各性能指标的性能数据,并根据各节点的各性能指标的性能数据和权重计算规则确定出执行任务的节点。

节点监视中心130,用于将周期性上报的各节点的各性能指标的性能数据存储至任务调度数据库110。

任一节点监视器,用于周期性的监视对应节点的各性能指标的性能数据,并上报至节点监视中心130,再由节点监视中心将各性能指标的性能数据存储至任务调度数据库110。

业务处理数据库160,用于指定任一节点将用户确定的任务类型和任务信息发送至调度中心120。

需要说明的是,上述图1所示的结构处于同一服务器中,即本申请在一个服务器下实现的,以实现轻量级的实现分布式节点的负载均衡。且上述图1所示的结构仅是一种示例,本发明实施例对此不做限定。

基于上述描述,图2示例性的示出了本发明实施例提供的一种分布式负载均衡的任务调度方法的流程示意图,该流程可由分布式负载均衡的任务调度装置执行。

如图2所示,该流程具体包括:

步骤210,调度中心从节点的各性能指标中确定出与待执行任务的任务类型匹配的关键性能指标。

本发明实施例中,任务类型对应各性能指标中的一种,因此可以根据任务类型在各性能指标中匹配出与任务类型相对应的性能指标,并将与任务类型相对应的性能指标确定为关键性能指标。

步骤220,所述调度中心基于各节点的节点监视器采集的所述关键性能指标的性能数据,确定所述各节点在所述关键性能指标下的资源利用率。

本发明实施例中,针对任务类型对应的关键性能指标,根据所有节点的关键性能指标的性能数据确定资源利用率,相当于确定出服务器的整体运行情况。

步骤230,所述调度中心确定与所述资源利用率匹配的权重计算规则。

本发明实施例中,权重计算规则中关键性能指标的指标权重与资源利用率正相关;权重计算规则中非关键性能指标的指标权重与资源利用率负相关。

步骤240,所述调度中心基于各节点的节点监视器采集的各性能指标的性能数据,确定各节点在各性能指标下的加权权重。

本发明实施例中,针对任一性能指标,各节点都存在一个对应的加权权重,用于计算各节点的调度权重。

步骤250,所述调度中心针对任一节点,基于所述权重计算规则及所述节点在各性能指标下的加权权重,确定所述节点的调度权重。

本发明实施例中,针对任一节点,通过权重计算规则中关键性能指标和其余性能指标的不同预设的指标权重,根据任务类型确定的关键性能指标的性能数据、其余性能指标的性能数据及对应预设的指标权重来确定节点的调度权重,以此来体现关键性能指标的重要性。

步骤260,所述调度中心根据各节点的述调度权重,确定执行所述待执行任务的节点。

在步骤210中,任务类型可以包括CPU类型、IO类型和内存类型,其中,任务类型指的是待执行任务需要消耗的资源重要程度,例如,若某一待执行任务,用户确定该待执行任务的任务类型为CPU类型,则表明该待执行任务更加依赖于CPU资源,即CPU资源越好,待执行任务执行的效率越高。

任务类型与各性能指标是相对应的,因此,各节点包括三个性能指标,分别为CPU性能指标、IO性能指标和内存性能指标。需要说明的是,本发明实施例中示例性的示出了三种类型及对应的三种性能指标,但并不限定于三种,也可以为四种、五种等,可以根据具体的应用场景进行配置。

在本发明实施例中,任务类型是由用户根据任务信息来确定的,然后通过任一节点生成任务,由该节点将任务类型上报至调度中心。

示例性的,图3示例性的示出了一种任务生成的示意图,如图3所示,包括:

步骤310,触发节点,生成任务。

通过quartz job的任务调度框来触发节点s,进而生成任务,该任务包括任务类型和任务信息。

步骤320,任务上报调度中心。

节点s将生成的任务上报至调度中心。

步骤330,选择执行任务的节点。

调度中心根据任务类型,通过上述图2所示的技术方案,确定出执行任务的节点c,然后将任务信息发送至节点c,由节点c来执行任务。

在步骤220中,根据任务类型确定了关键性能指标之后,根据关键性能指标的性能数据确定资源利用率。针对任一性能指标,包括两个性能数据,分别为最大可用资源和实际可用资源。

例如,针对CPU性能指标,各节点包括CPU最大使用率和CPU实际可用率两个性能数据,针对IO性能指标,各节点包括IO最大使用率和IO实际可用率两个性能数据,针对内存性能指标,各节点包括最大使用内存和实际可用内存两个性能数据。

具体的,针对任一节点,所述调度中心根据所述节点在所述关键性能指标下的最大可用资源及实际可用资源,确定所述节点在所述关键性能指标下的单体资源利用率;根据各节点在所述关键性能指标下的单体资源利用率,确定所述各节点在所述关键性能指标下的资源利用率。

在一种可实施的方式中,确定出各节点的单体资源利用率,然后计算出各单体资源利用率的平均数,将所述平均数作为各节点的资源利用率。

以关键性能指标为CPU性能指标举例来说,节点a1,将节点a1的CPU实际可用率和CPU最大可用率做比,得到比值,将比值作为节点a1的单体资源利用率,如共有9个节点,则对9个节点对应的单体资源利用率求平均,将平均值作为9个节点的资源利用率。

以关键性能指标为IO性能指标举例来说,节点a2,将节点a2的IO实际可用率和IO最大可用率做比,得到比值,将比值作为节点a2的单体资源利用率,如共有7个节点,则对7个节点对应的单体资源利用率求平均,将平均值作为7个节点的资源利用率。

以关键性能指标为内存性能指标举例来说,节点a3,将节点a3的实际可用内存和最大可用内存做比,得到比值,将比值作为节点a3的单体资源利用率,如共有5个节点,则对5个节点对应的单体资源利用率求平均,将平均值作为5个节点的资源利用率。

在另一种可实施的方式中,将各节点的关键性能指标的实际可用资源做和,得到第一值,将各节点的关键性能指标的最大可用资源做和,得到第二值,将第一值和第二值的比值作为各节点的资源利用率。

以关键性能指标为CPU性能指标进行举例,计算出节点a1、a2、……、a9的CPU实际可用率的和,以及节点a1、a2、……、a9的CPU最大使用率的和,将CPU实际可用率的和与CPU最大使用率的和作比较,得到的商作为各节点在CPU性能指标下的资源利用率。其中,资源利用率也可以理解为资源空闲率。

在步骤230中,权重计算规则为多个;在资源利用率高于设定阈值时,各性能指标的指标权重相同;在资源利用率低于设定阈值时,关键性能指标的指标权重高于非关键性能指标的指标权重。

在本发明实施例中,在资源利用率高于设定阈值时,证明各节点的内存资源足够,因此不需要偏向于内存性能指标选择节点,在资源利用率低于设定阈值时,需要偏向于内存性能指标选择节点,因此需要关键性能指标的指标权重高于非关键性能指标的指标权重。

具体的,权重计算规则中关键性能指标的指标权重与资源利用率正相关,权重计算规则中非关键性能指标的指标权重与资源利用率负相关。也就是说,资源利用率越大,则关键性能指标的指标权重越大,资源利用率越小,则非关键性能指标的指标权重越小。

以关键性能指标为内存性能指标举例来说,根据上述技术方案确定出各节点的在内存性能指标的利用资源率s,然后根据利用资源率s匹配的权重计算规则,如下所述:

在确定利用资源率s>0.5(设定阈值)时,匹配下述公式(1)所述的权重计算规则;

D=p+w

在确定利用资源率0.4<s<0.5时,匹配下述公式(2)所述的权重计算规则;

D=p+1.2w

在确定利用资源率0.3<s<0.4时,匹配下述公式(3)所述的权重计算规则;

D=p+1.5w

在确定利用资源率0.2<s<0.3时,匹配下述公式(4)所述的权重计算规则;

D=p+1.8w

在确定利用资源率s<0.2时,匹配下述公式(5)所述的权重计算规则;

D=p+2.2w

其中,w

需要说明的是,w

在本发明实施例中,针对任一节点,根据所述节点的单体资源利用率匹配节点的权重计算规则,相当于任一节点,均需要确匹配一次权重计算规则,并非是对全部节点进行统一匹配权重计算规则,会增加对调度中心的计算负载,但也会增加选择节点的准确性,适合于节点少的时候使用。

在步骤240中,针对任一性能指标,各节点的加权权重是根据排序确定的,即针对任一性能指标,各节点均被赋予一个加权权重。

具体的,针对任一性能指标,调度中心将各节点在性能指标下的实际可用资源进行排序,将排序结果划分为多个区间;根据节点所在区间的预设值,确定节点在性能指标下的加权权重。

以上述给出的三种性能指标为例,针对任一性能指标下的性能数据,将各节点根据数据排序,并划分为多个区间,根据节点所在区间的预设值,确定节点的加权权重。

在一种可实施的方式中,根据各节点的最大可用资源进行排序,并划分为多个区间,根据各区间的预设值,针对任一区间,将预设值作为该区间内节点的加权权重,相当于对各区间内的节点赋予加权权重。

在本发明实施例中,根据各节点的实际可用资源进行排序,并划分为多个区间,进而确定各节点的加权权重。其中,排序规则可以为由大到小的方式,也可以为由小到大的方式,在此不做具体限定。

举例来说,分布式节点包括a1、a2、……、a9,针对CPU性能指标,根据CPU实际可用率将各节点由大到小进行排序,排序结果为a1、a2、……、a9,然后对其划分区间。

在一种可实施的方式中,根据分布式节点的数量划分为预设数量的区间。在另一种可实施的方式中,以预设数量的分布式节点为一个区间,对所有的分布式节点进行划分。

在本发明实施例中,结合上述进一步举例,将分布式节点a1、a2、……、a9分为三个区间,即a1、a2、a3为第一个区间,a4、a5、a6为第二个区间,a7、a8、a9为第三个区间。

其中,第一区间的预设值为3,第二区间的预设值为2、第三区间的预设值为1。则针对于CPU性能指标,节点a1、a2、a3的加权权重为3,节点a4、a5、a6的加权权重为2,节点a7、a8、a9的加权权重为1。

以IO性能指标进行举例,根据IO实际可用率将各节点由大到小进行排序,排序结果为a9、a8、……、a1,然后对其划分区间,然后根据各区间的预设值,确定节点a1、a2、a3的加权权重为1,节点a4、a5、a6的加权权重为2,节点a7、a8、a9的加权权重为3。具体确定加权权重的方法再次不做赘述。

以内存性能指标进行举例,根据IO实际可用率将各节点由大到小进行排序,排序情况为a4、a5、a6、a3、a1、a2、a8、a7、a9,然后对其划分区间,然后根据各区间的预设值,确定节点a1、a2、a3的加权权重为2,节点a4、a5、a6的加权权重为3,节点a7、a8、a9的加权权重为1。具体确定加权权重的方法再次不做赘述。

在步骤250中,各节点的调度权重是根据上述各节点的加权权重和匹配的权重计算规则确定的。

具体的,调度中心针对任一节点,从任务调度数据库获取节点在上一任务调度中的调度权重,根据上一任务调度中的调度权重、各性能指标的指标权重及各性能指标的加权权重,确定节点的调度权重。

如上述公式(1)至公式(5)所示,其中,D为节点的调度权重,p为节点在上一任务调度中的调度权重。然后根据对应的公式可以确定出各节点的调度权重。

需要说明的是,若某节点为新节点,即不存在上一任务调度中的调度权重,则将其预设的初始调度权重作为上一任务调度中的调度权重,即将初始调度权重(如10、15等)作为p。以通过赋予初始调度权重,来确定调度权重,给予了新节点被选择执行待执行任务的可能性,提升了本发明加入新节点的便捷性。

在步骤260中,在得到各节点的调度权重之后,根据节点的调度权重确定执行待执行任务的节点,例如,将调度权重最大的节点作为执行任务的节点。

为了防止节点调度权重无限增加,再确定执行所述待执行任务的节点之后,对该节点的调度权重进行减小。

具体的,在确定执行所述待执行任务的节点之后,调度中心根据降低调整规则,调整执行待执行任务的节点的调度权重,得到执行所述待执行任务的节点的上一任务调度中的调度权重。

在一种可实施的方式中,通过预设值对调度权重进行减小,具体的,确定调度权重与预设值的差值,将差值更新为节点的调度权重,例如,节点a确定为待执行任务的节点之前的调度权重为20,预设值为2,则差值为18,则节点a确定为待执行任务的节点之后,节点a的调度权重为18。

在另一种可实施的方式中,通过预设比例对调度权重进行减小,具体的,确定调度权重与预设比例的乘积,将积更新为节点的调度权重,例如,节点a确定为待执行任务的节点之前的调度权重为20,预设比例为80%,则积为16,则节点a确定为待执行任务的节点之后,节点a的调度权重为16。

在本发明实施例中,针对任一节点,节点的各性能指标的性能数据是周期性通过多个节点监视器周期性的监视得到的。

具体的,同一节点设置有两个互为主备的节点监视器;

针对任一节点监视器,节点监控中心确定所述节点监视器异常后,向所述节点监视器发送覆盖文件;所述覆盖文件用于指示所述节点监视器重新启动;在确定互为主备的节点监视器均重启失败后,发出告警信息。

结合上述图1举例所述,节点a监视器151包括两个互为主备的节点监视器,用于轮流定时的监控节点a的内存性能指标的性能数据、CPU性能指标的性能数据和IO性能指标的性能数据、和调度权重,并发送至节点监视中心。

在一种情况中,节点监视器正常关闭。如节点a正常关闭前,向调度中心发送关闭指令。以使调度中心接收到关闭指令后,将任务调度数据库中的节点a的状态改为终止,并通知节点监视中心将节点a下架。最终由节点监视中心关闭该节点a的2个节点监视器。

在另一种情况中,节点监视器异常关闭。如中心监视器定时扫描各个节点监视器上报情况,若节点a的某个监视器在多个(如2个)周期内未上报性能指标的性能数据,则生成覆盖文件并发送至该节点监视器。若该节点监视器重新启动失败,则发出告警信息,提醒该节点监视器异,即提醒该节点为单监视器模式运行。

若确定节点a所有节点监视器异常,则将节点a的状态改为终止,下架节点a。

本发明实施例中,对于新节点,需要先调度中心发出指令,以使调度中心将该节点的状态更新为启动或等待执行任务状态,即注册新节点,在状态更新完成后,将该节点发送至节点监视中心,由节点监视中心对该节点配置多个节点监视器,以实时的获取该节点的各指标性能的性能数据。

示例性的,节点在接收到任务之后也会更新自身状态,图4示例性的示出了一种执行任务的示意图,如图4所示,包括:

步骤410,节点接收任务。

调度中心确定了执行任务的节点b之后,将任务发送至节点b,以使节点b接收任务。

步骤420,调度中心更新节点状态。

在节点b接收任务之后,调度中心将节点b的状态更新为处理中。

步骤430,节点通知调度中心任务情况。

节点b执行任务,并在任务执行完成后,将完成信息发送至调度中心。

步骤440,调度中心确定节点情况,更新节点状态。

调度中心确定节点b是否还有其它任务需要执行,若是,则不改变节点b的状态,若否,则将节点b的状态更新为准备就绪状态,即可以随时执行任务的状态。

基于相同的技术构思,图3示例性的示出了本发明实施例提供的一种分布式负载均衡的任务调度装置的结构示意图,该装置可以执行上述分布式负载均衡的任务调度方法。

如图5所示,该装置具体包括:

匹配模块510,用于从节点的各性能指标中确定出与待执行任务的任务类型匹配的关键性能指标;

处理模块520,用于基于各节点的节点监视器采集的所述关键性能指标的性能数据,确定所述各节点在所述关键性能指标下的资源利用率;

确定与所述资源利用率匹配的权重计算规则;其中,所述权重计算规则中所述关键性能指标的指标权重与所述资源利用率正相关;所述权重计算规则中非关键性能指标的指标权重与所述资源利用率负相关;

基于各节点的节点监视器采集的各性能指标的性能数据,确定各节点在各性能指标下的加权权重;

针对任一节点,基于所述权重计算规则及所述节点在各性能指标下的加权权重,确定所述节点的调度权重;

根据各节点的述调度权重,确定执行所述待执行任务的节点。

可选的,所述处理模块520具体用于:

针对任一节点,根据所述节点在所述关键性能指标下的最大可用资源及实际可用资源,确定所述节点在所述关键性能指标下的单体资源利用率;

根据各节点在所述关键性能指标下的单体资源利用率,确定所述各节点在所述关键性能指标下的资源利用率。

可选的,所述处理模块520具体用于:

针对任一性能指标,将各节点在所述性能指标下的实际可用资源进行排序,将排序结果划分为多个区间;

根据所述节点所在区间的预设值,确定所述节点在所述性能指标下的加权权重。

可选的,所述处理模块520具体用于:

针对任一节点,从任务调度数据库获取所述节点在上一任务调度中的调度权重;

根据上一任务调度中的调度权重、各性能指标的指标权重及各性能指标的加权权重,确定所述节点的调度权重。

可选的,所述权重计算规则为多个;

在资源利用率高于设定阈值时,各性能指标的指标权重相同;

在所述资源利用率低于所述设定阈值时,关键性能指标的指标权重高于非关键性能指标的指标权重。

可选的,所述处理模块520还用于:

确定执行所述待执行任务的节点之后,根据降低调整规则,调整执行所述待执行任务的节点的调度权重,得到执行所述待执行任务的节点的上一任务调度中的调度权重。

可选的,所述处理模块520还用于:

确定执行所述待执行任务的节点之后,同一节点设置有两个互为主备的节点监视器;

针对任一节点监视器,节点监控中心确定所述节点监视器异常后,向所述节点监视器发送覆盖文件;所述覆盖文件用于指示所述节点监视器重新启动;在确定互为主备的节点监视器均重启失败后,发出告警信息。

基于相同的技术构思,本发明实施例还提供一种计算机设备,包括:

存储器,用于存储程序指令;

处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述分布式负载均衡的任务调度方法。

基于相同的技术构思,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行上述分布式负载均衡的任务调度方法。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

相关技术
  • 一种分布式负载均衡的任务调度方法及装置
  • 一种分布式任务调度方法、系统、分布式装置和Redis数据库
技术分类

06120113284257