一种负载均衡方法、装置和计算节点与流程

未命名 09-03 阅读:87 评论:0


1.本技术涉及负载均衡技术领域,尤其涉及一种负载均衡方法、装置和计算节点。


背景技术:

2.随着计算机技术的不断发展,越来越多的企业开始使用分布式计算系统来处理任务。该分布式计算系统通常由调度中心和多个计算节点构成的计算节点集群组成,调度中心负责任务的调度和管理,它会将任务分配给各个计算节点进行处理。而计算节点是实际执行任务的地方,它们接收调度中心分配的任务,并根据任务的要求进行计算和处理。
3.调度中心和计算节点之间需要进行通信和数据交换,以实现任务的分配和管理。调度中心需要向计算节点发送任务信息和指令,计算节点需要向调度中心汇报任务的执行情况和结果。
4.在这种架构下,当网络出现延迟或者调度中心出现不可用时,会导致整个计算节点集群故障。


技术实现要素:

5.有鉴于此,本技术提供一种负载均衡方法、装置和计算节点,以解决现有技术在调度中心不可用时、整个计算节点集群故障的问题。
6.具体地,本技术是通过如下技术方案实现的:
7.本技术第一方面提供一种负载均衡方法,所述方法包括:
8.获取本设备当前负载状态,并基于所述当前负载状态计算本设备可承接任务的承接概率;其中,所述承接概率表征本设备当前处理任务的能力;
9.生成随机数,并判断所述随机数是否小于所述承接概率;
10.在所述随机数小于所述承接概率时,确定本设备当前可承接任务;
11.领取并开始执行任务。
12.可选的,基于所述当前负载状态计算本设备可承接任务的承接概率,包括:
13.按照如下公式计算所述承接概率:
14.p=1/(c+1)
2-1/(t+1)215.其中,所述c为所述当前负载状态;
16.所述t为所述最大负载状态;
17.所述p为所述承接概率。
18.可选的,负载状态用任务数、cpu占用率、内存负载率或基于任务数、cpu占用率、内存负载率中的至少两项信息确定的综合负载值表征。
19.可选的,所述领取任务,包括:
20.确定本次待领取的任务的目标数量,并领取所述目标数量个的任务。
21.可选的,所述负载状态为任务数,所述确定本次待领取的任务的目标数量,包括:
22.根据所述当前负载状态,选择与所述当前负载状态匹配的领取比例;
23.根据所述领取比例和所述最大负载状态,确定本次待领取的任务的目标数量;其中,所述目标数量等于所述领取比例和所述最大负载状态的乘积。
24.本技术第二方面提供一种负载均衡装置,所述装置包括获取模块、生成模块、处理模块和领取模块,其中,
25.所述获取模块,用于获取本设备当前负载状态,并基于所述当前负载状态计算本设备可承接任务的承接概率;其中,所述承接概率表征本设备当前处理任务的能力;
26.所述生成模块,用于生成随机数,并判断所述随机数是否小于所述承接概率;
27.所述处理模块,用于在所述生成模块判断所述随机数小于所述承接概率时,确定本设备当前可承接任务;
28.所述领取模块,用于领取并开始执行任务。
29.可选的,基于所述当前负载状态计算本设备可承接任务的承接概率,包括:
30.p=1/(c+1)
2-1/(t+1)231.其中,所述c为所述当前负载状态;
32.所述t为所述最大负载状态;
33.所述p为所述承接概率。
34.可选的,负载状态用任务数、cpu占用率、内存负载率或基于任务数、cpu占用率、内存负载率中的至少两项信息确定的综合负载值表征。
35.可选的,所述领取模块包括确定单元和领取单元,其中,
36.所述确定单元,用于确定本次待领取的任务的目标数量;
37.所述领取单元,用于领取所述目标数量个的任务。
38.可选的,所述负载状态为任务数,所述领取单元,具体用于根据所述当前负载状态,选择与所述当前负载状态匹配的领取比例,并根据所述领取比例和所述最大负载状态,确定本次待领取的任务的目标数量;其中,所述目标数量等于所述领取比例和所述最大负载状态的乘积。
39.本技术第三方面提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现本技术第一方面提供的任一项所述方法的步骤。
40.本技术第四方面提供一种计算节点,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现本技术第一方面提供的任一项所述方法的步骤。
41.本技术提供的负载均衡方法、装置和计算节点,通过获取本设备当前负载状态,并基于所述当前负载状态计算本设备可承接任务的承接概率,进而生成随机数,并判断所述随机数是否小于所述承接概率,从而所述随机数小于所述承接概率时,确定本设备当前可承接任务,领取并开始执行任务。这样,计算节点可基于自身负载情况,领取并执行任务,可保证在无调度中心的情况下,实现负载均衡,可避免现有技术在调度中心不可用时、整个计算节点集群故障的问题。
附图说明
42.图1为本技术提供的负载均衡方法实施例一的流程图;
43.图2为本技术提供的负载均衡方法实施例二的流程图;
44.图3为本技术提供的负载均衡方法实施例三的流程图;
45.图4为本技术提供的负载均衡装置所在计算节点的硬件结构图;
46.图5为本技术提供的负载均衡装置实施例一的结构示意图;
47.图6为本技术提供的负载均衡装置实施例二的结构示意图。
具体实施方式
48.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。
49.在本技术使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本技术。在本技术和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
50.应当理解,尽管在本技术可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本技术范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
51.本技术提供一种负载均衡方法、装置和计算节点,以解决现有技术在调度中心不可用时、整个计算节点集群故障的问题。
52.本技术提供的负载均衡方法、装置和计算节点,通过获取本设备当前负载状态,并基于所述当前负载状态计算本设备可承接任务的承接概率,以及生成随机数,并判断所述随机数是否小于所述承接概率,从而所述随机数小于所述承接概率时,确定本设备当前可承接任务,领取并开始执行任务。这样,计算节点可基于自身负载情况,领取并执行任务,可保证在无调度中心的情况下,实现负载均衡,可避免相关技术在调度中心不可用时、整个计算节点集群故障的问题。
53.下面给出具体的实施例,用以详细介绍本技术的技术方案。
54.图1为本技术提供的负载均衡方法实施例一的流程图。本实施例提供的方法,应用于计算节点集群中的每个计算节点。请参照图1,本实施例提供的方法,可以包括:
55.s101、获取本设备当前负载状态,并基于所述当前负载状态计算本设备可承接任务的承接概率;其中,所述承接概率表征本设备当前处理任务的能力。
56.需要说明的是,计算节点集群由多个计算节点组成,各个计算节点通过网络连接在一起,共同完成某项任务或提供某种服务。本实施例提供的方法,应用于计算节点集群中的每个计算节点。
57.具体的,本设备当前负载状态反映该设备当前的负载情况。相应的,本设备允许的最大负载状态是指本设备所能承受的最大负载情况。需要说明的是,最大负载状态的高低可以反映出本设备的性能极限和瓶颈。
58.可选的,负载状态可用任务数、cpu占用率、内存负载率或基于任务数、cpu占用率、
内存负载率中的至少两项信息确定的综合负载情况表征。
59.例如,一实施例中,负载状态用任务数表征,此时,当前负载状态即为本设备当前正在执行的任务数,相应的,最大负载状态即为本设备所能承受的最大任务数。此时,可直接从本设备的运行参数中获取当前负载状态,并从本设备的属性参数中获取最大负载状态。
60.具体的,负载状态用基于任务数、cpu占用率、内存负载率中至少两项信息确定的综合负载情况表征时,一实施例中,该综合负载情况可以基于下述公式计算:
[0061][0062]
其中,f为综合负载情况,xi为占用率、cpu占用率和内存负载率中的至少两项信息,ai为各项信息对应的权重。例如,当负载状态用基于任务数、cpu占用率、内存负载率这三项信息确定的综合负载情况表征时,此时,综合负载情况=任务占用率*权重1+cpu占用率*权重2+内存负载率*权重3,其中,任务占用率=正在执行的任务数/所能承受的最大任务数。
[0063]
需要说明的是,各项信息的权重是根据实际需要设定的,本实施例中,不对各项信息的权重进行限定。例如,可基于该项信息对负载情况的影响程度确定该项信息的权重。一种可能的实现方式中,可在一项信息对负载情况的影响程度较大时,为该项信息设置一较大的权重。
[0064]
再例如,另一实施例中,负载状态用基于cpu占用率和内存负载率确定的综合负载值表征时,综合负载情况可以用cpu占用率和内存负载率的平均值表征。例如,一可能的实现方式中,cpu占用率为30%,内存负载率的权重为40%,那么该设备的综合负载情况为35%。
[0065]
需要说明的是,任务数、cpu占用率、内存负载率可以通过系统监控工具来采集得到。
[0066]
本设备可承接任务的承接概率指的是本设备可以承接新任务的概率,承接概率越大,则表示本设备承接该任务的能力越强,本设备承接新任务的可能性越大;相应的,承接概率越小,则表示本设备承接新任务能力越弱,本设备承接新任务的可能性越小。
[0067]
需要说明的是,承接概率与当前负载状态负相关,即当前负载状态越大,该计算节点当前的计算压力越大,该计算节点承接新任务的概率就越小。
[0068]
例如,一实施例中,可以基于当前负载状态和本设备允许的最大负载状态计算承接概率。例如,在一种可能的实现方式中,承接概率可以由剩余负载状态除以本设备允许的最大负载状态计算得到,其中,剩余负载状态等于本设备允许的最大负载状态减去当前负载状态。
[0069]
结合上面的例子,例如,当前负载状态为20%,本设备允许的最大负载状态为80%,承接概率就等于0.75。
[0070]
再例如,另一实施例中,承接概率按照如下公式进行计算:
[0071]
p=1/(c+1)
[0072]
其中,所述c为所述当前负载状态,c∈r;所述p为所述承接概率。
[0073]
s102、生成随机数,并判断所述随机数是否小于所述承接概率。
[0074]
具体的,随机数是一个处于0到1之间的数。可在任何时间生成随机数,本实施例中,不对此进行限定。此外,生成随机数的方法是多样的。可以通过python内置的random模块生成一个0到1之间的随机数,也可以通过java代码中的scanner类实现随机数的生成,此处,不对随机数的具体生成方式进行限制。例如,可以通过random模块生成一个随机数,该随机数为0.5。
[0075]
s103、在所述随机数小于所述承接概率时,确定本设备当前可承接任务。
[0076]
具体的,如果随机数小于承接概率,表明本设备当前处理任务的能力较强,还可以承接新的任务。如果随机数大于承接概率,表明本设备当前处理任务的能力较弱,不可以再承接新的任务。
[0077]
s104、领取并开始执行任务。
[0078]
具体的,当随机数小于承接概率时,表明本设备可以承接任务,此时,领取新的任务并且执行。其中,本设备可以每次领取一个任务,也可以每次领取多个任务。本实施例中,不对领取的任务数量进行限定。
[0079]
具体实现时,可从任务池中未执行的任务中领取任务,进一步的,任务池可以是存储在任务中心,该任务中心可以是独立于本设备的其他设备。本实施例中,不对此进行限定。
[0080]
本实施例提供的负载均衡方法,通过获取本设备当前负载状态,并基于所述当前负载状态,计算本设备可承接任务的承接概率,进而生成随机数,并判断所述随机数是否小于所述承接概率,从而所述随机数小于所述承接概率时,确定本设备当前可承接任务,领取并开始执行任务。这样,计算节点可基于自身负载情况,领取并执行任务,可保证在无调度中心的情况下,实现负载均衡,可避免现有技术在调度中心不可用时、整个计算节点集群故障的问题。
[0081]
图2为本技术提供的负载均衡方法实施例二的流程图。请参照图2,本实施例提供的方法,可以包括:
[0082]
s201、获取本设备当前负载状态,并基于所述当前负载状态计算本设备可承接任务的承接概率;其中,所述承接概率表征本设备当前处理任务的能力。
[0083]
可选的,一种可能的实现方式中,该步骤的具体实现过程,可以包括:
[0084]
按照如下公式计算所述承接概率:
[0085]
p=1/(c+1)
2-1/(t+1)2[0086]
其中,c为本设备当前负载状态;t为本设备允许的最大负载状态;p为本设备可承接任务的承接概率。
[0087]
具体的,c,t∈r,0《=c《=t,0《t。
[0088]
具体实现时,在当前负载状态和本设备允许的最大负载状态已知的情况下,将当前负载状态和本设备允许的最大负载状态代入公式,即可计算得到承接概率的值。
[0089]
例如,一实施例中,当前负载状态为20%,最大负载状态为80%,带入公式,计算可得承接概率为0.38。
[0090]
s202、生成随机数,并判断所述随机数是否小于所述承接概率。
[0091]
s203、在所述随机数小于所述承接概率时,确定本设备当前可承接任务。
[0092]
其中,步骤s202和s203的具体实现过程和实现原理可以参见实施例一中步骤s102
和s103的描述,此处不再赘述。
[0093]
s204、确定本次待领取的任务的目标数量,并领取所述目标数量个的任务,并执行领取到的任务。
[0094]
具体实现时,可以通过多种方式确定本次待领取的任务的目标数量。
[0095]
例如,一实施例中,可将每次领取的任务的目标数量设置为指定值。需要说明的是,该指定值可以是预先设定好的,其可以是根据实际需要设定的,本实施例中,不对指定值的具体值进行限定。例如,一实施例中,指定值为2,本次领取2个任务。再例如,另一实施例中,指定值是允许执行的最大任务数的30%。例如,允许执行的最大任务数为10,则指定值为3。此时,本次领取的任务的目标数量为3个。再例如,指定值是剩余任务数的50%。例如,当前执行的任务数为2,允许运行的最大任务数为10,此时,剩余任务数为8。本次领取的任务的目标数量为4个。
[0096]
再例如,一种可能的实现方式中,可基于当前负载状态确定本次待领取的任务的目标数量。具体实现时,在基于当前负载状态确定本次待领取的任务的目标数量此时,可通过当前负载状态和预设的负载状态和领取数量的对应关系,确定本次待领取的任务的目标数量。
[0097]
需要说明的是,预设的负载状态和领取数量的对应关系是根据实际需要设定的,本实施例中,不对该对应关系进行限定。例如,在一种可能的实现方式中,预设的负载状态和领取数量的对应关系如表1所示。
[0098]
表1预设的负载状态和领取数量的对应关系
[0099]
负载状态每次领取任务的数量低于20%1020%-50%5高于50%2
[0100]
结合表1,此时,可通过当前负载状态和该对应关系,得到本次待领取的任务的目标数量。例如,当前负载状态为15%时,本次待领取的任务的目标数量为10个;当前负载状态为30%时,本次待领取的任务的目标数量为5个;当前负载状态为60%时,本次待领取的任务的目标数量为2个。
[0101]
再例如,另一实施例中,可基于当前的剩余负载状态确定本次待领取的任务的目标数量。具体实现时,在基于剩余负载状态确定本次待领取的任务的目标数量时,可通过当前的剩余负载状态和预设的剩余负载状态和领取数量的对应关系,确定本次待领取的任务的目标数量。
[0102]
需要说明的是,预设的剩余负载状态和领取数量的对应关系是根据实际需要设定的,本实施例中,不对该对应关系进行限定。例如,在一种可能的实现方式中,预设的剩余负载状态和领取数量的对应关系如表2所示。
[0103]
表2预设的剩余负载状态和领取数量的对应关系
[0104]
剩余负载状态每次领取任务的数量低于20%220%-50%5高于50%10
[0105]
结合表2,此时,可通过当前的剩余负载状态和该对应关系,得到本次待领取的任务的目标数量。例如,当前的剩余负载状态为15%时,本次待领取的任务的目标数量为2个;当前的剩余负载状态为30%时,本次待领取的任务的目标数量为5个;当前的剩余负载状态为60%时,本次待领取的任务的目标数量为10个。
[0106]
本实施例提供的负载均衡方法,在领取任务时,通过确定本次待领取的任务的目标数量,进而领取所述目标数量个的任务。这样,可适应性领取任务,避免了领取任务过多导致过载,或领取任务过少造成资源浪费。
[0107]
图3为本技术提供的负载均衡方法实施例三的流程图。请参照图3,本实施例提供的方法,在上述实施例的基础上,所述负载状态为任务数,确定本次待领取的任务的目标数量的过程,可以包括:
[0108]
s301、根据所述当前负载状态,选择与所述当前负载状态匹配的领取比例。
[0109]
具体的,可通过当前负载状态和预设的负载状态和领取比例的对应关系,确定与所述当前负载状态匹配的领取比例。
[0110]
需要说明的是,预设的负载状态和领取比例的对应关系是根据实际需要设定的,本实施例中,不对该对应关系进行限定。例如,在一种可能的实现方式中,预设的负载状态和领取比例的对应关系如表3所示。
[0111]
表3预设的负载状态和领取比例的对应关系
[0112]
负载状态领取比例低于20%80%20%-50%50%高于50%20%
[0113]
结合表3,例如,当前负载状态为15%时,本次待领取的任务的领取比例为80%;当前负载状态为30%时,本次待领取的任务的领取比例为50%;当前负载状态为60%时,本次待领取的任务的领取比例为20%。
[0114]
s302、根据所述领取比例和所述最大负载状态,确定本次待领取的任务的目标数目;其中,所述目标数量等于所述领取比例和所述最大负载状态的乘积。
[0115]
例如,当前正在执行的任务数为2,允许执行的最大任务数为10。参照表3可知,与当前负载状态匹配的领取比例为50%,本次待领取的任务的目标数量为5个。
[0116]
本实施例提供的负载均衡方法,在确定领取任务的数量时,通过根据所述当前负载状态,选择与所述当前负载状态匹配的领取比例,进而根据所述领取比例和所述最大负载状态,确定本次待领取的任务的目标数目。这样,可基于负载状态领取任务,使得领取任务的数量和负载状态匹配,避免领取任务过多导致过载,或领取任务过少造成资源浪费。
[0117]
与前述负载均衡方法的实施例相对应,本技术还提供了负载均衡装置的实施例。
[0118]
本技术提供的负载均衡装置的实施例可以应用在计算节点上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本技术负载均衡装置所在计算节点的一种硬件结构图,除了图4所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的计算节点通常根据该负载均衡装置的实际功能,还可以包括其他硬
件,对此不再赘述。
[0119]
图5为本技术提供的负载均衡装置实施例一的结构示意图。请参考图5,本实施例提供的装置可以包括获取模块510、生成模块520、处理模块530和领取模块540,其中,
[0120]
所述获取模块510,用于获取本设备当前负载状态,并基于所述当前负载状态计算本设备可承接任务的承接概率;其中,所述承接概率表征本设备当前处理任务的能力;
[0121]
所述生成模块520,用于生成随机数,并判断所述随机数是否小于所述承接概率;
[0122]
所述处理模块530,用于在所述生成模块判断所述随机数小于所述承接概率时,确定本设备当前可承接任务;
[0123]
所述领取模块540,用于领取并开始执行任务。
[0124]
本实施例提供的装置,可用以执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
[0125]
本实施例提供的负载均衡装置,通过获取本设备当前负载状态,并基于所述当前负载状态,计算本设备可承接任务的承接概率,进而生成随机数,并判断所述随机数是否小于所述承接概率,从而所述随机数小于所述承接概率时,确定本设备当前可承接任务,领取并开始执行任务。这样,计算节点可基于自身负载情况,领取并执行任务,可保证在无调度中心的情况下,实现负载均衡,可避免相关技术在调度中心不可用时、整个计算节点集群故障的问题。
[0126]
进一步地,基于所述当前负载状态计算本设备可承接任务的承接概率,包括:
[0127]
p=1/(c+1)
2-1/(t+1)2[0128]
其中,所述c为所述当前负载状态;
[0129]
所述t为所述最大负载状态;
[0130]
所述p为所述承接概率。
[0131]
可选的,负载状态用任务数、cpu占用率、内存负载率或基于任务数、cpu占用率、内存负载率中的至少两项信息确定的综合负载值表征。
[0132]
进一步地,图6为本技术提供的负载均衡装置实施例二的结构示意图。请参照图6,本实施例提供的装置,在上述实施例的基础上,所述领取模块540包括确定单元541和领取单元542,其中,
[0133]
所述确定单元541,用于确定本次待领取的任务的目标数量;
[0134]
所述领取单元542,用于领取所述目标数量个的任务。
[0135]
本实施例提供的负载均衡方法,在领取任务时,通过确定本次待领取的任务的目标数量,进而领取所述目标数量个的任务。这样,可适应性领取任务,避免了领取任务过多导致过载,或领取任务过少造成资源浪费。
[0136]
进一步地,所述确定单元541,具体用于在所述负载状态为任务数,根据所述当前负载状态,选择与所述当前负载状态匹配的领取比例,并根据所述领取比例和所述最大负载状态,确定本次待领取的任务的目标数量;其中,所述目标数量等于所述领取比例和所述最大负载状态的乘积。
[0137]
本实施例提供的负载均衡装置,在确定领取任务的数量时,通过根据所述当前负载状态,选择与所述当前负载状态匹配的领取比例,进而根据所述领取比例和所述最大负载状态,确定本次待领取的任务的目标数目。这样,可基于负载状态领取任务,使得领取任
务的数量和负载状态匹配,避免领取任务过多导致过载,或领取任务过少造成资源浪费。
[0138]
本技术还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现本技术第一方面提供的任一项所述方法的步骤。
[0139]
具体的,适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、媒介和存储器设备,例如包括半导体存储器设备(例如eprom、eeprom和闪存设备)、磁盘(例如内部硬盘或可移动盘)、磁光盘以及cd rom和dvd-rom盘。
[0140]
本技术还提供一种计算节点,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现本技术第一方面提供的任一项所述方法的步骤。
[0141]
具体的,该计算节点可以是服务器等。
[0142]
以上所述仅为本技术的较佳实施例而已,并不用以限制本技术,凡在本技术的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本技术保护的范围之内。

技术特征:
1.一种负载均衡方法,其特征在于,所述方法应用于计算节点集群中的每个计算节点,所述方法包括:获取本设备当前负载状态,并基于所述当前负载状态计算本设备可承接任务的承接概率;其中,所述承接概率表征本设备当前处理任务的能力;生成随机数,并判断所述随机数是否小于所述承接概率;在所述随机数小于所述承接概率时,确定本设备当前可承接任务;领取并开始执行任务。2.根据权利要求1所述的方法,基于所述当前负载状态计算本设备可承接任务的承接概率,包括:按照如下公式计算所述承接概率:p=1/(c+1)
2-1/(t+1)2其中,所述c为所述当前负载状态;所述t为所述最大负载状态;所述p为所述承接概率。3.根据权利要求1或2所述的方法,其特征在于,负载状态用任务数、cpu占用率、内存负载率或基于任务数、cpu占用率、内存负载率中的至少两项信息确定的综合负载值表征。4.根据权利要求1所述的方法,其特征在于,所述领取任务,包括:确定本次待领取的任务的目标数量,并领取所述目标数量个的任务。5.根据权利要求4所述的方法,其特征在于,所述负载状态为任务数,所述确定本次待领取的任务的目标数量,包括:根据所述当前负载状态,选择与所述当前负载状态匹配的领取比例;根据所述领取比例和所述最大负载状态,确定本次待领取的任务的目标数量;其中,所述目标数量等于所述领取比例和所述最大负载状态的乘积。6.一种负载均衡装置,其特征在于,所述装置包括获取模块、生成模块、处理模块和领取模块,其中,所述获取模块,用于获取本设备当前负载状态,并基于所述当前负载状态计算本设备可承接任务的承接概率;其中,所述承接概率表征本设备当前处理任务的能力;所述生成模块,用于生成随机数,并判断所述随机数是否小于所述承接概率;所述处理模块,用于在所述生成模块判断所述随机数小于所述承接概率时,确定本设备当前可承接任务;所述领取模块,用于领取并开始执行任务。7.根据权利要求6所述的装置,其特征在于,基于所述当前负载状态计算本设备可承接任务的承接概率,包括:p=1/(c+1)
2-1/(t+1)2其中,所述c为所述当前负载状态;所述t为所述最大负载状态;所述p为所述承接概率。8.根据权利要求6所述的装置,其特征在于,所述领取模块包括确定单元和领取单元;其中,
所述确定单元,用于确定本次待领取的任务的目标数量;所述领取单元,用于领取所述目标数量个的任务。9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现权利要求1-5任一项所述方法的步骤。10.一种计算节点,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1-5任一项所述方法的步骤。

技术总结
本申请提供一种负载均衡方法、装置和计算节点。本申请提供的负载均衡方法,应用于计算节点集群中的每个计算节点,所述方法包括:获取本设备当前负载状态,并基于所述当前负载状态计算本设备可承接任务的承接概率;其中,所述承接概率表征本设备当前处理任务的能力;生成随机数,并判断所述随机数是否小于所述承接概率;在所述随机数小于所述承接概率时,确定本设备当前可承接任务;领取并开始执行任务。本申请提供的负载均衡方法、装置和计算节点,可保证在无调度中心的情况下,实现负载均衡,可避免现有技术在调度中心不可用时、整个计算节点集群故障的问题。节点集群故障的问题。


技术研发人员:陈俊瑶 段益康
受保护的技术使用者:探探科技(北京)有限公司
技术研发日:2023.06.27
技术公布日:2023/8/31
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐