网络负载均衡方法、装置及集群服务系统与流程

文档序号:16734934发布日期:2019-01-28 12:33阅读:198来源:国知局
网络负载均衡方法、装置及集群服务系统与流程

本发明涉及互联网技术领域,特别是涉及网络负载均衡方法、装置及集群服务系统。



背景技术:

在互联网中,用户的网络请求是由集群服务系统(简称集群)执行的。随着网络技术的迅猛发展,用户通过网络获取信息的需求不断增多,集群的负载也不断增加。为了使集群内多个服务节点(简称searcher节点或节点)之间实现合理的任务分配以提高系统的处理效率,在互联网中引入了负载均衡技术。负载均衡技术一方面把大量的并发任务请求或数据流量分担到多个节点上分别处理,减少流量拥塞,另一方面将单个任务请求分担到多个节点上做并行处理,提高系统的响应速度。

传统的网络负载均衡技术主要采用轮询调度算法和hashing(哈希)算法。轮询调度算法每一次把来自用户的任务请求轮流分配给集群中的节点。hashing算法则根据任务请求的源地址及目标ip地址,计算出对应的hash值,并将任务请求分配给与该hash值对应的节点。轮询调度算法和hashing算法不关心每个节点的当前负载数和节点的处理能力,而是假设所有节点的处理能力都相同,其本质是将任务较为平均的分配到各节点中的负载均衡算法。

然而,当集群中的某个节点出现异常,例如该节点的i/o异常,或者由于网络暂时波动造成该节点负载过高时,从上层节点发过来的任务的处理能力就会降低。但是现有的负载均衡算法并没有对该节点做特别处理,而是依然会往该节点发送新的任务请求,这就导致该节点的任务队列增长迅速,如果该节点不能快速处理掉这些队列里面的任务,就会造成后续的任务请求都会超时,从而引起网络系统处理效率底下,甚至可能有节点宕机的风险。



技术实现要素:

本发明实施例提供了网络负载均衡方法、装置及集群服务系统,以解决现有技术中的网络负载均衡方法当出现个别节点异常时容易引起网络系统处理效率低下,以及容易出现节点宕机风险的问题。

为了解决上述技术问题,本发明实施例公开了如下技术方案:

一方面,提供了一种网络负载均衡方法,所述方法包括:在有待下发的任务请求时,获取预先存储的集群服务系统中可用的节点的健康度信息;根据所述节点的健康度信息计算所述节点的下发概率和健康度等级,根据所述下发概率和所述健康度等级选择发送任务请求的第一目标节点和第二目标节点;所述第一目标节点为根据所述健康度等级选择的正常健康等级的节点,所述第二目标节点为根据所述健康度等级选择的不健康等级的节点;分别向所述第一目标节点和第二目标节点发送所述任务请求;接收并采纳所述第一目标节点反馈的所述任务请求的处理结果,并分别接收所述第一目标节点和第二目标节点在反馈所述任务请求的处理结果时发送的实时健康度参数,并根据所述实时健康度参数分别计算并存储相应目标节点的健康度信息。

可选的,所述方法还包括:根据预定周期内集群服务系统中各个节点返回的心跳信息设置各个节点的屏蔽状态,其中,所述可用的节点指屏蔽状态为未被屏蔽的节点。

可选的,所述健康度等级包括以下至少一项:不可服务、可以抛弃、正常服务、负载很低。

可选的,所述目标节点的实时健康度参数包括:

所述任务请求在所述目标节点的任务队列中的队列延时tqueue,和/或所述目标节点处理所述任务请求的延时tprocess,和/或所述任务请求到达所述目标节点的网络延时tnet,和/或所述目标节点的i/o等待延时tio/wait。

可选的,根据所述实时健康度参数分别计算并存储相应目标节点的健康度信息,包括:根据所述第一目标节点的实时健康度参数加权计算得到所述第一目标节点的实时健康度信息;根据所述第二目标节点的实时健康度参数加权计算得到所述第二目标节点的实时健康度信息。

可选的,所述根据所述目标节点的实时健康度参数加权计算得到所述目标节点的实时健康度信息采用如下公式:

其中,h为目标节点的实时健康度信息,t(x)和th(x)为预设归一化函数,α,β,χ,δ为取值为0到1之间的预设加权系数。

可选的,根据所述节点的健康度信息计算所述节点的下发概率采用如下公式:

其中,pi为节点i的下发概率,w为可用节点的数量,为根据所述节点i的实时健康度在预设周期t内计算得到的所述节点i的平均健康度。

可选的,以预设时间t为周期,计算在所述周期内返回任务请求的处理结果的节点i的平均健康度包括:

根据存储的所述节点i的实时健康度确定对应的实时健康度等级;

根据所述实时健康度等级确定对应的实时加权系数;

以预设时间t为加权周期,根据所述实时加权系数对所述节点i的实时健康度进行加权,得到所述节点在t内的平均健康度

另一方面,提供了一种网络负载均衡装置,所述装置包括:获取单元,用于在有待下发的任务请求时,获取预先存储的集群服务系统中可用的节点的健康度信息;第一计算单元,用于根据所述节点的健康度信息计算所述节点的下发概率和健康度等级;选择单元,用于根据所述下发概率和健康度等级选择发送任务请求的第一目标节点和第二目标节点,所述第一目标节点为根据所述健康度等级选择的正常健康等级的节点,所述第二目标节点为根据所述健康度等级选择的不健康等级的节点;发送单元,用于分别向所述第一目标节点和第二目标节点发送所述任务请求;接收单元,用于接收并采纳所述第一目标节点反馈的所述任务请求的处理结果,并分别接收所述第一目标节点和第二目标节点在反馈所述任务请求的处理结果时发送的实时健康度参数,并根据所述实时健康度参数分别计算并存储相应目标节点的健康度信息。

可选的,所述目标节点的实时健康度参数包括:所述任务请求在所述目标节点的任务队列中的队列延时tqueue,和/或所述目标节点处理所述任务请求的延时tprocess,和/或所述任务请求到达所述目标节点的网络延时tnet,和/或所述目标节点的i/o等待延时tio/wait。

可选的,所述接收单元包括:第一计算子单元,用于根据所述第一目标节点的实时健康度参数加权计算得到所述第一目标节点的实时健康度信息,及根据所述第二目标节点的实时健康度参数加权计算得到所述第二目标节点的实时健康度信息。

可选的,所述第一计算子单元用于根据如下公式计算所述目标节点的实时健康度信息:

其中,h为目标节点的实时健康度信息,t(x)和th(x)为预设归一化函数,α,β,χ,δ为取值为0到1之间的预设加权系数。

可选的,所述第一计算单元用于根据如下公式计算所述节点i的下发概率pi:

其中,w为可用节点的数量,为根据所述节点i的实时健康度在预设周期t内计算得到的所述节点i的平均健康度。

可选的,所述装置还包括:第二计算单元,用于以预设时间t为周期,计算在所述周期内返回任务请求的处理结果的节点i的平均健康度所述计算单元包括:

第二确定子单元,用于根据存储的所述节点i的实时健康度确定对应的实时健康度等级;

第三确定子单元,用于根据所述实时健康度等级确定对应的实时加权系数;

第二计算子单元,用于以预设时间t为加权周期,根据所述实时加权系数对所述节点i的实时健康度进行加权,得到所述节点在t内的平均健康度

另一方面,提供了一种集群服务系统,包括网络负载均衡装置和服务节点,所述网络负载均衡装置用于在有待下发的任务请求时,获取预先存储的集群服务系统中可用的节点的健康度信息,并根据所述服务节点的健康度信息计算所述节点的下发概率和健康度等级,并根据所述下发概率和所述健康度等级选择发送任务请求的第一目标节点和第二目标节点,以及分别向所述第一目标节点和第二目标节点发送所述任务请求,接收并采纳所述第一目标节点反馈的所述任务请求的处理结果,并分别接收所述第一目标节点和第二目标节点在反馈所述任务请求的处理结果时发送的实时健康度参数,并根据所述实时健康度参数分别计算并存储相应目标节点的健康度信息;其中,所述第一目标节点为根据所述健康度等级选择的正常健康等级的节点,所述第二目标节点为根据所述健康度等级选择的不健康等级的节点。

可选的,所述目标节点的实时健康度参数包括:所述任务请求在所述目标节点的任务队列中的队列延时tqueue,和/或所述目标节点处理所述任务请求的延时tprocess,和/或所述任务请求到达所述目标节点的网络延时tnet,和/或所述目标节点的i/o等待延时tio/wait。

上述本发明提供的网络负载均衡方法、装置及集群服务系统的技术方案,通过获取节点的健康度信息计算对应节点的下发概率,从而使路由节点router选择下发任务的目标节点时能够根据节点的健康度信息进行合理选择,避免选择健康度达不到指标的异常节点,提高系统的稳定性。并且,节点的健康度信息能得到实时计算和更新,从而使异常的节点自动恢复功能后即时加入到正常健康等级的节点中来,从而提高了集群服务系统的效率。

附图说明

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

图1为本发明网络负载均衡方法提供的一个实施例的流程示意图。

图2为本发明网络负载均衡方法提供的另一个实施例的流程示意图。

图3为本发明网络负载均衡装置提供的一个实施例的结构示意图。

图4为本发明网络负载均衡装置提供的另一个实施例的结构示意图。

图5为本发明集群服务系统提供的一个实施例的结构示意图。

具体实施方式

首先对本发明网络负载均衡方法的第一个实施例进行说明,参见图1,为本发明网络负载均衡方法提供的一个实施例的流程示意图,本实施例包括如下步骤:

步骤101:获取集群服务系统中可用的节点的健康度信息。

在集群服务系统中,任务请求通常是逐级下发的,在每一级都有数量众多的节点可供选择下发任务请求。为描述方便,仅以单级任务请求的下发为例介绍本发明的实施例。在下发任务请求时,可以是上一级节点向下一级节点下发任务,也可以是专门设置的该级的路由节点(简称router节点或router)向服务节点(简称searcher节点或节点)下发任务,这里统称为router向节点下发任务。

router根据各节点的状态,排除不可用的节点,获得若干可用节点的健康度信息。这里,“不可用”的节点即被router暂时屏蔽的节点。若在预设的时间内某一节点的健康度信息达不到预设的指标,或该节点在预定周期内未返回心跳信息,或返回的心跳信息中包含的该节点的指标不达标,则在接下来的一段时间内,将该节点暂时屏蔽,即router下发任务请求时不会考虑该节点,直至再次收到来自该节点指标正常的心跳信息,或收到该节点指标正常的健康度信息,才会解除屏蔽。

步骤102:根据所述节点的健康度信息计算所述节点的下发概率,根据所述下发概率选择发送任务请求的对应目标节点。

router根据各节点的健康度信息计算对应节点的下发概率,如果健康度信息指示该节点的健康程度较高,则选择该节点作为下发任务请求的概率必然也较高。

步骤103:根据选择的所述目标节点发送所述任务请求。

本实施例提供的技术方案,通过获取节点的健康度信息计算对应节点的下发概率,从而使router选择下发任务请求的目标节点时能够根据节点的健康度信息进行合理选择,避免选择健康度达不到指标的异常节点,以及使异常节点有机会快速恢复其功能,提高系统的稳定性。

在本发明的其他实施例中,在步骤102中,根据所述下发概率选择发送任务请求的对应目标节点,具体可以包括:

步骤1021:根据所述节点的健康度信息确定所述节点对应的健康度等级。

例如,可以根据节点的健康度信息将节点分为不可服务、可以抛弃、正常服务、负载很低四个健康度等级。

步骤1022:根据所述下发概率从所述健康度等级满足预设等级条件的节点中选择所述对应目标节点。

通过将节点划分健康度等级,可以快速直观反映当前节点的健康度状况,在选择目标节点时,先根据节点的健康度等级排除不满足预设等级条件的节点,再根据下发概率选择满足等级条件的节点。

如图2所示,为本发明网络负载均衡方法提供的另一个实施例的流程示意图,本实施例包括如下步骤:

步骤201:获取集群服务系统中可用的节点的健康度信息。

步骤202:根据所述节点的健康度信息计算所述节点的下发概率,根据所述下发概率选择发送任务请求的对应目标节点。

步骤203:根据选择的所述目标节点发送所述任务请求。

步骤201至步骤203分别与前述实施例中步骤101至103对应,相关之处可参见前述实施例的相关描述。

可选的,所述目标节点包括第一目标节点和第二目标节点,其中所述第一目标节点为根据所述健康度等级选择的正常健康等级的节点,所述第二目标节点为根据所述健康度等级选择的不健康等级的节点。

步骤204:计算并存储所述目标节点的实时健康度信息。

具体的,所述步骤204可以包括如下子步骤2041和2042(图中未示出):

步骤2041:接收所述目标节点在反馈所述任务请求的处理结果时发送的所述目标节点的实时健康度参数。

当所述目标节点中既包含正常健康等级的节点,也包含不健康等级的节点时,router采纳第一目标节点反馈的任务处理结果,对第二目标节点反馈的任务处理结果忽略,并接收目标节点在反馈任务处理结果的同时附带返回的实时健康度参数,以及根据所述实时健康度参数计算所述目标节点的实时健康度信息,从而可以更新健康等级和不健康等级的节点的实时健康度信息,尤其是更新不健康等级的节点的实时健康度信息,可以对不健康节点进行实时重点监控。

具体的,所述目标节点的实时健康度参数可以包括:

所述任务请求在所述目标节点的任务队列中的队列延时tqueue,和/或

所述目标节点处理所述任务请求的延时tprocess,和/或

所述任务请求到达所述目标节点的网络延时tnet,和/或

所述目标节点的i/o等待延时tio/wait。

步骤2042:根据所述目标节点的实时健康度参数加权计算得到所述目标节点的实时健康度信息。例如,根据所述第一目标节点的实时健康度参数加权计算得到第一目标节点的实时健康度信息,根据所述第二目标节点的实时健康度参数加权计算得到所述第二目标节点的实时健康度信息。

可选的,所述目标节点的实时健康度信息可以具体为目标节点的实时健康度h。在计算时,router可将实时健康度参数分别归一化到0-1之间,然后再进行加权计算。

具体可根据如下公式加权计算得到所述目标节点的实时健康度h:

其中,α,β,χ,δ为取值为0到1之间的预设加权系数。t(·)和th(·)为归一化函数,在实际使用时,可以根据时间区间进行离散定义,例如:

th(·)函数可采用与t(·)函数相同或类似的定义方式,其参数tio/wait可具体从所述目标节点的i/o延时tio和所述任务请求在所述目标节点中的等待延时twait中的一个较大值作为参数,即

tio/max=max(tio,twait)

由上述计算可知,归一化计算后节点的实时健康度h的取值范围为0-1,取值越大,代表该节点越健康。

具体的,可依据节点的实时健康度的值由高到低划分得到若干个实时健康度等级,例如不可服务、可以抛弃、正常服务、负载很低四个实时健康度等级。

在本发明的其他实施例中,根据所述节点的健康度信息计算所述节点i的下发概率pi具体采用如下公式:

其中,w为可用节点的数量,为根据所述节点i的实时健康度h在预设周期t内计算得到的所述节点i的平均健康度。

可选的,可以预设时间t为周期,计算在所述周期内返回任务请求的处理结果的节点i的平均健康度计算方法为:

根据存储的所述节点i的实时健康度h确定对应的实时健康度等级;

根据所述实时健康度等级确定对应的实时加权系数;

以预设时间t为加权周期,根据所述实时加权系数对所述节点i的实时健康度进行加权,得到所述节点在t内的平均健康度

router根据计算得到的平均健康度,再确定该节点的平均健康度等级,并在内存中进行更新。对于新加入的节点,则将其平均健康度和平均健康度等级初始化为预定值。

本实施例提供的技术方案,通过获取节点的健康度信息计算对应节点的下发概率,从而使router选择下发任务请求的目标节点时能够根据节点的健康度信息进行合理选择,避免选择健康度达不到指标的异常节点,提高系统的稳定性。并且,系统的健康度信息能得到实时计算和更新,从而使异常的节点自动恢复功能后即时加入到正常健康等级的节点中来,提高系统效率。

与网络负载均衡方法提供的实施例相对应,本发明还提供了网络负载均衡装置的实施例。

如图3所示为网络负载均衡装置提供的一个实施例的结构示意图,所述装置包括:

获取单元301、第一计算单元302、选择单元303、发送单元304。

其中,所述获取单元301,用于获取集群服务系统中可用的节点的健康度信息;

所述第一计算单元302,用于根据所述节点的健康度信息计算所述节点的下发概率;

所述选择单元303,用于根据所述下发概率选择发送任务请求的对应目标节点;

所述发送单元304,用于根据选择的所述目标节点发送所述任务请求。

可选的,所述选择单元303包括(图中未示出):第一确定子单元3031,用于根据所述节点的健康度信息确定所述节点对应的健康度等级;第一选择子单元3032,用于根据所述下发概率从所述健康度等级满足预设等级条件的节点中选择所述对应目标节点。

图4为本发明网络负载均衡装置提供的另一个实施例的结构示意图,所述装置还包括:计算存储单元305,用于计算并存储所述目标节点的实时健康度信息。

可选的,所述计算存储单元305包括:接收子单元3051,用于接收所述目标节点在反馈所述任务请求的处理结果时发送的所述目标节点的实时健康度参数,所述目标节点包括第一目标节点和第二目标节点,其中所述第一目标节点为根据所述健康度等级选择的正常健康等级的节点,所述第二目标节点为根据所述健康度等级选择的不健康等级的节点;第一计算子单元3052,用于根据所述目标节点的实时健康度参数加权计算得到所述目标节点的实时健康度信息。

可选的,所述目标节点的实时健康度参数包括:所述任务请求在所述目标节点的任务队列中的队列延时tqueue,和/或所述目标节点处理所述任务请求的延时tprocess,和/或所述任务请求到达所述目标节点的网络延时tnet,和/或所述目标节点的i/o等待延时tio/wait。

可选的,所述第一计算子单元3052,用于根据如下公式计算所述目标节点的实时健康度信息h:

其中,t(·)和th(·)为归一化函数,α,β,χ,δ为取值为0到1之间的预设加权系数。

可选的,所述第一计算单元302用于根据如下公式计算所述节点i的下发概率pi:

其中,w为可用节点的数量,为根据所述节点i的实时健康度在预设周期t内计算得到的所述节点i的平均健康度。

可选的,所述装置还包括:第二计算单元(图中未示出),用于以预设时间t为周期,计算在所述周期内返回任务请求的处理结果的节点i的平均健康度

可选的,所述第二计算单元包括:第二确定子单元,用于根据存储的所述节点i的实时健康度确定对应的实时健康度等级;第三确定子单元,用于根据所述实时健康度等级确定对应的实时加权系数;第二计算子单元,用于以预设时间t为加权周期,根据所述实时加权系数对所述节点i的实时健康度进行加权,得到所述节点在t内的平均健康度

本发明提供的网络负载均衡装置的实施例,技术方案本质与上述网络负载均衡方法的实施例相同,因此未做具体解释描述,相关之处可参见上述网络负载均衡方法的实施例的对应部分。

本实施例提供的网络负载均衡装置的技术方案,通过获取节点的健康度信息计算对应节点的下发概率,从而使router选择下发任务请求的目标节点时能够根据节点的健康度信息进行合理选择,避免选择健康度达不到指标的异常节点,以及使异常的节点有机会快速恢复其功能,提高系统的稳定性。

另一方面,提供了一种集群服务系统,如图5所示,所述集群服务系统包括网络负载均衡装置和服务节点,所述网络负载均衡装置用于获取集群服务系统中可用的节点的健康度信息,并根据所述服务节点的健康度信息计算所述节点的下发概率,并根据所述下发概率选择发送任务请求的对应目标节点,以及根据选择的所述目标节点发送所述任务请求。

所述集群服务系统中的网络负载均衡装置,所采用的技术方案本质与上述网络负载均衡方法的实施例相同,因此未做具体解释描述,相关之处可参见上述网络负载均衡方法的实施例的对应部分。

本实施例提供的集群服务系统的技术方案,通过获取节点的健康度信息计算对应节点的下发概率,从而使router选择下发任务请求的目标节点时能够根据节点的健康度信息进行合理选择,避免选择健康度达不到指标的异常节点,以及使异常的节点有机会快速恢复其功能,系统的稳定性较高。

本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件的方式来实现,通用硬件包括通用集成电路、通用cpu、通用存储器、通用元器件等,当然也可以通过专用硬件包括专用集成电路、专用cpu、专用存储器、专用元器件等来实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置及系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述的本发明实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1