负载均衡方法和装置、电子设备以及计算机可读介质与流程

未命名 07-20 阅读:177 评论:0


1.本公开涉及计算机技术领域,具体涉及负载均衡方法和装置、电子设备以及计算机可读介质。


背景技术:

2.现有动态负载均衡技术,既可以对单一的优化目标进行均衡,也可以同时均衡多个优化目标。单目标负载均衡技术,通过收集并分析集群中各节点在待均衡目标上的实时变化情况,动态调整各节点的分流权重,进而实现优化目标的均衡化。以此为基础,多目标负载均衡技术通过为各个单一优化目标设置集成权重,进而将多个优化目标进行集成,并最终实现多优化目标的整体均衡。
3.在实际操作中,多目标负载均衡技术中,权重比例设置严重依赖于前期实验,合适的权重比例设置较为困难繁琐;同时,不同服务应用之间的权重比例往往互不相同,相互之间难以复用,当需要添加新的优化均衡目标时,集成权重需要进行重新设置,可扩展性能差。


技术实现要素:

4.本公开的实施例提出了负载均衡方法和装置、电子设备、计算机可读介质。
5.第一方面,本公开的实施例提供了一种负载均衡方法,该方法包括:响应于接收到对初始节点集群的访问请求流,确定至少一个均衡目标以及各个均衡目标的优先级;按照优先级的顺序依次分层排序至少一个均衡目标,得到目标层级;接收初始节点集群的负载反馈信息;基于目标层级中除最后一层均衡目标之外的均衡目标和负载反馈信息,对初始节点集群分层筛选,得到满足目标层级的最终节点集群;基于最后一层均衡目标、最终节点集群的负载反馈信息和访问请求流,得到最终节点集群中各个节点的分流结果。
6.在一些实施例中,上述基于目标层级中除最后一层均衡目标之外的均衡目标和负载反馈信息,对初始节点集群分层筛选,得到满足目标层级的最终节点集群包括:针对目标层级中的第一层均衡目标,基于负载反馈信息,对初始节点集群执行第一层均衡目标对应的筛选策略,得到第一层均衡目标筛选的节点集群;针对目标层级中的各个中间层均衡目标,基于负载反馈信息,对上一层中间层均衡目标筛选的节点集群执行该中间层均衡目标对应的筛选策略,得到满足该中间层均衡目标的中间节点集群,中间层均衡目标为目标层级中除第一层均衡目标和最后一层均衡目标之外的各层均衡目标;响应于目标层级中所有中间层均衡目标对应的筛选策略执行完成,得到满足目标层级的最终节点集群。
7.在一些实施例中,上述筛选策略包括:基于上一层均衡目标筛选的节点集群中各个节点的负载反馈信息,计算当前周期中各个节点的该中间层均衡目标的平均目标指标值;计算该节点集群中所有节点的平均目标指标值;基于该节点集群中各个节点的平均目标指标值与所有节点的平均目标指标值之间的差异,筛选该节点集群中满足所有节点的平均目标指标值的负载,得到中间节点集群。
8.在一些实施例中,上述基于最后一层均衡目标、最终节点集群的负载反馈信息和访问请求流,得到最终节点集群中各个节点的分流结果包括:初始化最终节点集群中各个节点的初始分流比例以及列表属性为拒绝列表和接收列表;基于最终节点集群的负载反馈信息,计算最后一层均衡目标的第一期望取值;基于拒绝列表中各个节点的负载反馈信息和第一期望取值,得到拒绝均衡度,并基于拒绝均衡度调整拒绝列表中各个节点的列表属性;基于拒绝列表中各个节点的初始分流比例、拒绝均衡度,得到拒绝列表中各个节点的拒绝分流比例,并采用得到的拒绝分流比例替换拒绝列表中各个节点的初始分流比例;基于接收列表中各个节点的负载反馈信息和第一期望取值,得到接收均衡度,并基于接收均衡度调整接收列表中各个节点的列表属性;基于接收列表中各个节点的初始分流比例、接收均衡度,得到接收列表中各个节点的接收分流比例,并采用得到的拒绝分流比例替换接收列表中各个节点的初始分流比例;基于拒绝分流比例和接收分流比例,为最终节点集群中的各个节点分配访问请求流。
9.在一些实施例中,上述基于拒绝列表中各个节点的负载反馈信息和第一期望取值,得到拒绝均衡度包括:基于拒绝列表中各个节点的负载反馈信息,确定拒绝列表中各个节点对应最后一层均衡目标的实际取值;基于拒绝列表中各个节点的实际取值和第一期望取值,得到拒绝列表中各个节点的拒绝均衡度。
10.在一些实施例中,上述基于接收列表中各个节点的负载反馈信息和第一期望取值,得到接收均衡度包括:基于接收列表中各个节点的负载反馈信息,确定接收列表中各个节点对应最后一层均衡目标的实际取值;基于接收列表中各个节点的实际取值和第一期望取值,得到接收列表中各个节点的接收均衡度。
11.在一些实施例中,上述至少一个均衡目标包括:服务可用率和优先级低于服务可用率的中央处理器利用率;接收初始节点集群的负载反馈信息包括:接收当前周期中初始节点集群中各个节点响应服务请求的成功数量和失败数量;接收当前周期中初始节点集群中各个节点反馈的中央处理器利用率。
12.第二方面,本公开的实施例提供了一种负载均衡装置,该装置包括:确定单元,被配置成响应于接收到对初始节点集群的访问请求流,确定至少一个均衡目标以及各个均衡目标的优先级;得到单元,被配置成按照优先级的顺序依次分层排序至少一个均衡目标,得到目标层级;接收单元,被配置成接收初始节点集群的负载反馈信息;筛选单元,被配置成基于目标层级中除最后一层均衡目标之外的均衡目标和负载反馈信息,对初始节点集群分层筛选,得到满足目标层级的最终节点集群;分流单元,被配置成基于最后一层均衡目标、最终节点集群的负载反馈信息和访问请求流,得到最终节点集群中各个节点的分流结果。
13.在一些实施例中,上述筛选单元进一步被配置成:针对目标层级中的第一层均衡目标,基于负载反馈信息,对初始节点集群执行第一层均衡目标对应的筛选策略,得到第一层均衡目标筛选的节点集群;针对目标层级中的各个中间层均衡目标,基于负载反馈信息,对上一层中间层均衡目标筛选的节点集群执行该中间层均衡目标对应的筛选策略,得到满足该中间层均衡目标的中间节点集群,中间层均衡目标为目标层级中除第一层均衡目标和最后一层均衡目标之外的各层均衡目标;响应于目标层级中所有中间层均衡目标对应的筛选策略执行完成,得到满足目标层级的最终节点集群。
14.在一些实施例中,上述筛选策略包括:基于上一层均衡目标筛选的节点集群中各
个节点的负载反馈信息,计算当前周期中各个节点的该中间层均衡目标的平均目标指标值;计算该节点集群中所有节点的平均目标指标值;基于该节点集群中各个节点的平均目标指标值与所有节点的平均目标指标值之间的差异,筛选该节点集群中满足所有节点的平均目标指标值的负载,得到中间节点集群。
15.在一些实施例中,上述分流单元包括:分组模块,被配置成初始化最终节点集群中各个节点的初始分流比例以及列表属性为拒绝列表和接收列表;计算模块,被配置成基于负载反馈信息,计算最后一层均衡目标的第一期望取值;拒绝属性模块,被配置成基于拒绝列表中各个节点的负载反馈信息和第一期望取值,得到拒绝均衡度,并基于拒绝均衡度调整拒绝列表中各个节点的列表属性;拒绝比例模块,被配置成基于拒绝列表中各个节点的初始分流比例、拒绝均衡度,得到拒绝列表中各个节点的拒绝分流比例,并采用得到的拒绝分流比例替换拒绝列表中各个节点的初始分流比例;接收属性模块,被配置成基于接收列表中各个节点的负载反馈信息和第一期望取值,得到接收均衡度,并基于接收均衡度调整接收列表中各个节点的列表属性;接收比例模块,被配置成基于接收列表中各个节点的初始分流比例、接收均衡度,得到接收列表中各个节点的接收分流比例,并采用得到的拒绝分流比例替换接收列表中各个节点的初始分流比例;分配模块,被配置成基于拒绝分流比例和接收分流比例,为最终节点集群中的各个节点分配访问请求流。
16.在一些实施例中,上述拒绝属性模块进一步被配置成:基于拒绝列表中各个节点的负载反馈信息,确定拒绝列表中各个节点对应最后一层均衡目标的实际取值;基于拒绝列表中各个节点的实际取值和第一期望取值,得到拒绝列表中各个节点的拒绝均衡度。
17.在一些实施例中,上述接收属性模块进一步被配置成:基于接收列表中各个节点的负载反馈信息,确定接收列表中各个节点对应最后一层均衡目标的实际取值;基于接收列表中各个节点的实际取值和第一期望取值,得到接收列表中各个节点的接收均衡度。
18.在一些实施例中,至少一个均衡目标包括:服务可用率和优先级低于服务可用率的中央处理器利用率;上述接收单元进一步被配置成:接收当前周期中初始节点集群中各个节点响应服务请求的成功数量和失败数量;接收当前周期中初始节点集群中各个节点反馈的中央处理器利用率。
19.第三方面,本公开的实施例提供了一种电子设备,该电子设备包括:一个或多个处理器;存储装置,其上存储有一个或多个程序;当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如第一方面中任一实现方式描述的方法。
20.第四方面,本公开的实施例提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面中任一实现方式描述的方法。
21.本公开的实施例提供的负载均衡方法和装置,首先,响应于接收到对初始节点集群的访问请求流,确定至少一个均衡目标以及各个均衡目标的优先级;其次,按照优先级的顺序依次分层排序至少一个均衡目标,得到目标层级;再次,接收初始节点集群的负载反馈信息;从次,基于目标层级中除最后一层均衡目标之外的均衡目标和负载反馈信息,对初始节点集群分层筛选,得到满足目标层级的最终节点集群;最后,基于最后一层均衡目标、最终节点集群的负载反馈信息和访问请求流,得到最终节点集群中各个节点的分流结果。由此,至少一个均衡目标基于对应用服务的重要程度,按照优先级从大到小进行分级排序,且次优级均衡目标需要在较优级均衡目标完成负载筛选之后再进行处理,无需考虑额外的集
成权重,为流量请求预估出了最优的节点选择,实现了节点集群在不同优先级均衡目标上的整体负载均衡,提高了节点集群的资源利用率和性能;对于新增均衡目标,只需将其按照优先级顺序分层嵌套至目标层级相应位置即可处理,提高了负载均衡的效率。
附图说明
22.通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本公开的其它特征、目的和优点将会变得更明显:
23.图1是本公开的一个实施例可以应用于其中的示例性系统架构图;
24.图2是根据本公开的负载均衡方法的一个实施例的流程图;
25.图3是根据本公开的负载均衡方法对应的多目标负载均衡框图;
26.图4是本公开的一种双目标负载均衡结构示意图;
27.图5是根据本公开的负载均衡装置的一个实施例的结构示意图;
28.图6是适于用来实现本公开的实施例的电子设备的结构示意图。
具体实施方式
29.下面结合附图和实施例对本公开作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
30.需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本公开。
31.图1示出了可以应用本公开的负载均衡方法的示例性系统架构100。
32.如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,通常可以包括无线通信链路等等。
33.终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如即时通信工具、邮箱客户端等。
34.终端设备101、102、103可以是硬件,也可以是软件;当终端设备101、102、103为硬件时,可以是具有通信和控制功能的用户设备,上述用户设置可与服务器105进行通信。当终端设备101、102、103为软件时,可以安装在上述用户设备中;终端设备101、102、103可以实现成多个软件或软件模块(例如用来提供分布式服务的软件或软件模块),也可以实现成单个软件或软件模块。在此不做具体限定。
35.服务器105可以是提供各种服务的服务器,例如为终端设备101、102、103上负载均衡系统提供消息体的后台服务器。后台服务器可以在接收到对初始节点集群的访问请求流后,基于获取的均衡目标和均衡目标的优先级,确定目标层级,基于目标层级对初始节点集群(与服务器连接的所有终端设备)分层筛选,得到满足目标层级的最终节点集群,基于最后一层均衡、最终节点集群的负载反馈信息和访问请求流,得到最终节点集群的分流结果。
36.需要说明的是,服务器可以是硬件,也可以是软件。当服务器为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当服务器为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务的软件或软件模块),也可以实现
成单个软件或软件模块。在此不做具体限定。
37.需要说明的是,本公开的实施例所提供的负载均衡方法一般由服务器105执行。
38.应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
39.如今随着业务逻辑的愈发复杂和系统规模的日益庞大,分布式服务架构已成为实际生产环境中的主流。同时,为避免分布式集群中因资源分布不均而导致的资源浪费以及服务超载引起的的集群性能下降问题,就需要设计出有效的负载均衡策略来提高服务集群的资源利用率和性能,以更好地为用户提供服务。
40.基于集群负载信息是否可预先确定的原则,可以将现有负载均衡技术划分为静态和动态两类,如:以集群各节点负载处理能力相同为前提的轮询(round robin)、随机(random)等静态负载均衡技术,以及通过实时动态收集各节点负载信息的最小链接数(least connections)、最低时延(locality aware)等动态负载均衡技术。静态负载均衡技术具有处理策略简单、时效性高等优势,但实际生产环境中的大规模分布式服务集群由于容器化应用混合部署等因素,往往会导致负载均衡效果不佳。动态负载均衡技术基于集群中各节点的负载信息反馈,实时调整分流策略,进而能够有效地避免非同质化应用部署的影响,提高集群资源的利用率和服务的整体性能。
41.单目标均衡的动态负载均衡技术:为了实现高可用、高并发、高性能的分布式集群系统,除了关注集群各节点的性能指标外,同时也要兼顾业务服务指标的稳定。由于单目标均衡技术往往只关注某一个系统优化目标的均衡稳定,因而在需求较为复杂的应用服务中略显不足。
42.多目标均衡的动态负载均衡技术,以单目标均衡为基础,通过为不同优化目标设置对应的集成权重来集成多个待优化目标,以此实现整体的均衡化。这种处理方式,首先将多个优化目标并列于同等级别进行对待,其次具体服务对不同优化目标的差异化需求则通过设置集成权重来进行区别。然而在实际操作中,权重比例设置严重依赖于前期实验,合适的权重比例设置较为困难繁琐;同时,不同服务应用之间的权重比例往往互不相同,相互之间难以复用;最后,当需要添加新的优化均衡目标时,集成权重需要进行重新设置,可扩展性较差。
43.针对上述缺陷,本公开提供了一种负载均衡方法,主要解决多目标均衡的动态负载均衡技术中不同服务应用之间权重比例往往互不相同,相互之间难以复用的问题,通过对下游服务集群各节点反馈的相关负载信息进行实时收集和分析,为当前时刻的流量请求预估出最优的节点选择,进而动态调整集群各节点的分流策略,以适应复杂多变的线上集群环境;多个均衡目标基于对应用服务的重要程度,按照优先级从大到小进行分级排序,且次优级均衡目标需要在较优级均衡目标完成负载信息反馈之后再进行处理,不同的均衡目标按照其优先级顺序相互嵌套。从而无需再考虑额外的集成权重,同时对于新增均衡目标,只需将其按优先级顺序分层嵌套至对应的位置来处理即可。如图2,示出了根据本公开的负载均衡方法的一个实施例的流程200,该负载均衡方法包括以下步骤:
44.步骤201,响应于接收到对初始节点集群的访问请求流,确定至少一个均衡目标以及各个均衡目标的优先级。
45.本实施例中,初始节点集群是与分布式架构中服务器连接的多个节点,其中,服务
器可以是运行本公开的负载均衡方法的执行主体,访问请求流是至少一个访问方访问初始节点集群中节点的请求,如图3中的访问请求流f,执行主体将访问请求流分配给初始节点集群中的至少一个节点,在图3中节点集群中的节点包括:客户端1、客户端2

客户端n(n>2),并且在分配时需要均衡各个节点的负载,以提高初始节点集群的资源利用率和性能。
46.步骤202,按照优先级的顺序依次分层排序至少一个均衡目标,得到目标层级。
47.本实施例中,基于各个均衡目标对初始节点集群的性能和服务的影响程度,对各个均衡目标进行等级排序,得到各个均衡目标的优先级顺序。
48.本实施例中,目标层级中各个均衡目标的优先等级自高向低的顺序进行排序,在考虑均衡目标时,首先确定优先级最高的均衡目标,再依次执行优先级较低的均衡目标。如目标层级包括:a层级均衡目标和b层级均衡目标(a>b),则在考虑均衡目标,先判断a层级均衡目标是否满足,再满足a层级均衡目标之后,再考虑b层级均衡目标。
49.可选地,目标层级包括:层级相同的两个不同均衡目标c1、c2,将该两个不同均衡目标作为同一个均衡目标,并在此层时,需要同时考虑均衡目标c1、c2。
50.步骤203,接收初始节点集群的负载反馈信息。
51.本实施例中,负载反馈信息是指初始节点集群中各个节点的负载信息,对于不同的均衡目标,负载反馈信息与该均衡目标相对应。例如,均衡目标为业务服务可用率(如请求处理延时、单机可用率),则负载反馈信息是对业务服务请求响应成功的成功数量和对业务服务请求响应不成功的不成功数量。再如,均衡目标为机器性能指标,则负载反馈信息包括:各个节点的中央处理器利用率和内存占用率的具体值。
52.步骤204,基于目标层级中除最后一层均衡目标之外的均衡目标和负载反馈信息,对初始节点集群分层筛选,得到满足目标层级的最终节点集群。
53.本实施例中,通过目标层级中除最后一层均衡目标之外的均衡目标先对初始节点集群中的节点进行分层筛选,再通过最后一层均衡目标对最终的节点集群进行分流,可以使分流的节点可以同时满足目标层级中所有均衡目标的要求。
54.本实施例中,从目标层级中优先级最高的均衡目标开始,按照优先级顺序依次检查不同层级的均衡目标,低优先级目标可以视为高优先级目标调整分流策略的补充修正项,进而实现分级反馈调节。
55.本实施例中,分流策略是向节点集群中各个节点分配访问请求流的大小或者比例的策略,对于节点集群中高负载的节点,向其分配少量的访问请求流;对于节点集群中低负载的节点,向其分配大量的访问请求流。
56.可选地,对于当前层级的均衡目标,当中间节点集群中的节点对当前均衡目标均无法满足,则直接调整为节点分流的当前分流策略,否则将依次遍历完目标层级中所有均衡目标;同时,当前时刻服务节点的负载信息将分级逐一反馈至下一周期各均衡目标的处理过程中,进而决定下一时刻分流策略的调整。
57.步骤205,基于最后一层均衡目标、最终节点集群的负载反馈信息和访问请求流,得到最终节点集群中各个节点的分流结果。
58.本实施例中,针对最终节点集群,通过统计并分析最终节点集群中各节点历史请求在不同级别均衡目标上的负载反馈信息,动态调整当前时刻请求的分流策略,进而优化集群中不同节点的负载差异,并最终通过周期性的反馈信息可以实现集群各节点在均衡目
标上的渐进收敛。
59.本实施例提供的负载均衡方法,通过将不同均衡目标按照优先级进行分层排序,并在处理过程中按序统计、处理各节点实时反馈的负载信息,以实现集群节点在不同优先级均衡目标上的整体均衡。
60.本公开的实施例提供的负载均衡方法,首先,响应于接收到对初始节点集群的访问请求流,确定至少一个均衡目标以及各个均衡目标的优先级;其次,按照优先级的顺序依次分层排序至少一个均衡目标,得到目标层级;再次,接收初始节点集群的负载反馈信息;从次,基于目标层级中除最后一层均衡目标之外的均衡目标和负载反馈信息,对初始节点集群分层筛选,得到满足目标层级的最终节点集群;最后,基于最后一层均衡目标、最终节点集群的负载反馈信息和访问请求流,得到最终节点集群中各个节点的分流结果。由此,至少一个均衡目标基于对应用服务的重要程度,按照优先级从大到小进行分级排序,且次优级均衡目标需要在较优级均衡目标完成负载筛选之后再进行处理,无需考虑额外的集成权重,为流量请求预估出了最优的节点选择,实现了节点集群在不同优先级均衡目标上的整体负载均衡,提高了节点集群的资源利用率和性能;对于新增均衡目标,只需将其按照优先级顺序分层嵌套至目标层级相应位置即可处理,提高了负载均衡的效率。
61.本公开的一些可选实现方式中,上述基于目标层级中除最后一层均衡目标之外的均衡目标和负载反馈信息,对初始节点集群分层筛选,得到满足目标层级的最终节点集群包括:
62.针对目标层级中的第一层均衡目标,基于负载反馈信息,对初始节点集群执行第一层均衡目标对应的筛选策略,得到第一层均衡目标筛选的节点集群;针对目标层级中的各个中间层均衡目标,基于负载反馈信息,对上一层中间层均衡目标筛选的节点集群执行该中间层均衡目标对应的筛选策略,得到满足该中间层均衡目标的中间节点集群,中间层均衡目标为目标层级中除第一层均衡目标和最后一层均衡目标之外的各层均衡目标;响应于目标层级中所有中间层均衡目标对应的筛选策略执行完成,得到满足目标层级的最终节点集群。
63.本实施例中,筛选策略是筛选节点集群中负载的策略,均衡目标不同,筛选策略不同,通过筛选策略可以准确地识别出已经偏移均衡目标的负载,并对其进行去除,得到满足均衡目标的负载,例如,均衡目标是业务服务指标,而对应均衡目标的筛选策略则是与业务服务指标的值相关的策略,通过业务服务指标对应的筛选策略,可以筛选出满足最优业务服务指标的节点集群。
64.本实施例中,目标层级可以包括:第一层均衡目标、至少一个中间层均衡目标,最后一层均衡目标,从目标层级的第一层均衡目标(优先级最高)开始,对初始节点集群执行第一层均衡目标对应的筛选策略,确定满足第一均衡目标要求的初始节点集群;对满足第一均衡目标要求的初始节点集群分层执行中间层均衡目标对应的筛选策略,得到满足所有中间层均衡目标的最终节点集群。
65.本可选实现方式提供的对初始节点集群分层筛选的方法,针对目标层级中的第一层均衡目标,对初始节点集群执行第一层均衡目标对应的筛选策略,得到第一层均衡目标筛选的节点集群,针对目标层级中除第一层均衡目标之外的中间层均衡目标,对上一层中间层均衡目标筛选的节点集群执行该中间层均衡目标对应的筛选策略,得到满足目标层级
中所有均衡目标的最终节点集群,提高了分层筛选的可靠性,保证了最终节点集群中的负载为最优负载。
66.可选地,上述基于目标层级中除最后一层均衡目标之外的均衡目标和负载反馈信息,对初始节点集群分层筛选,得到满足目标层级的最终节点集群包括:基于初始节点集群中各个节点的负载反馈信息,确定目标层级中各层均衡目标的期望值;针对目标层级中除最后一层均衡目标之外的各层均衡目标,按照层级优先级顺序依次检测初始节点集群中各个节点的负载反馈信息是否均大于或等于所有层均衡目标的期望值,响应于有负载均大于或等于所有层均衡目标的期望值,将大于或等于所有层均衡目标的期望值的负载聚合在一起,得到最终节点集群。
67.本公开的一些可选实现方式中,上述筛选策略包括:基于上一层均衡目标筛选的节点集群中各个节点的负载反馈信息,计算当前周期中各个节点的该中间层均衡目标的平均目标指标值;计算该节点集群中所有节点的平均目标指标值;基于该节点集群中各个节点的平均目标指标值与所有节点的平均目标指标值之间的差异,筛选该节点集群中满足所有节点的平均目标指标值的负载,得到中间节点集群。
68.本可选实现方式中,上述上一层均衡目标是目标层级中与该中间层均衡目标相邻,且优先级等级大于该中间层均衡目标的均衡目标,如图3中,目标层级包括:层l1、层l2

层ln(n大于2),其中,层l1是层l2的上一层均衡目标,层l1的优先级大于层l2的优先级,在图3中,层ln是目标层级中优先级最低的均衡目标,也是最后一层均衡目标。
69.本可选实现方式中,基于上一层均衡目标筛选的节点集群中各个节点的负载反馈信息,计算当前周期中各个节点的该均衡目标的平均目标指标值包括:基于第一层均衡目标筛选的节点集群的负载反馈信息,确定第一层均衡目标筛选的节点集群中各个节点的第二层均衡目标的实际值,在当前周期(预设的时间段)中,对所有实际值求平均,得到第一层均衡目标筛选的节点集群各个节点的平均目标指标值,其中第二层均衡目标是目标层级中位于第一层均衡目标之后,且优先级低于第一层均衡目标的均衡目标。
70.本可选实现方式中,在当前周期中采集各个节点的该均衡目标的实际值,对当前周期中所有的实际值求平均,得到各个节点的平均目标指标值(对应各个节点多个平均目标指标值);对所有节点的平均目标指标值求平均,得到对应所有节点的平均目标指标值(对应所有节点的一个总的平均目标指标值)。
71.本可选实现方式中,上述基于该节点集群中各个节点的平均目标指标值与所有节点的平均目标指标值之间的差异,筛选该节点集群中满足所有节点的平均目标指标值的负载,得到中间节点集群包括:将该节点集群中各个节点的平均目标指标值分别与所有节点的平均目标指标值作差,将其中平均目标指标值与所有节点的平均目标指标值的差值小于或者预设差值阈值的负载作为中间节点集群,中间节点集群中的负载均满足均衡目标。
72.本可选实现方式提供的筛选策略,首先计算各个节点的该均衡目标的平均目标指标值,再计算所有节点的平均目标指标值,基于各个节点的平均目标指标值与所有节点的平均目标指标值的差值,筛选得到中间节点集群,能够准确地识别出已经偏移均衡目标的节点,提高了节点负载筛选的可靠性。
73.在本公开的一些可选实现方式中,上述基于最后一层均衡目标、最终节点集群的负载反馈信息和访问请求流,得到最终节点集群中各个节点的分流结果包括:初始化最终
节点集群中各个节点的初始分流比例以及列表属性为拒绝列表和接收列表;基于最终节点集群的负载反馈信息,计算最后一层均衡目标的第一期望取值;基于拒绝列表中各个节点的负载反馈信息和第一期望取值,得到拒绝均衡度,并基于拒绝均衡度调整拒绝列表中各个节点的列表属性;基于拒绝列表中各个节点的初始分流比例、拒绝均衡度,得到拒绝列表中各个节点的拒绝分流比例,并采用得到的拒绝分流比例替换拒绝列表中各个节点的初始分流比例;基于接收列表中各个节点的负载反馈信息和第一期望取值,得到接收均衡度,并基于接收均衡度调整接收列表中各个节点的列表属性;基于接收列表中各个节点的初始分流比例、接收均衡度,得到接收列表中各个节点的接收分流比例,并采用得到的拒绝分流比例替换接收列表中各个节点的初始分流比例;基于拒绝分流比例和接收分流比例,为最终节点集群中的各个节点分配访问请求流。
74.本实施例中,均衡度与列表相对应,用于衡量节点是否属于列表的参数,其中,拒绝均衡度用于衡量节点是否属于拒绝列表的参数,接收均衡度用于衡量节点是否属于接收列表的参数。
75.本可选实现方式中,上述基于拒绝列表中各个节点的负载反馈信息和第一期望取值,得到拒绝均衡度,并基于拒绝均衡度调整拒绝列表中各个节点的列表属性包括:基于拒绝列表中各个节点对应最后一层均衡目标的反馈信息与第一期望取值之间的差异,计算出的拒绝均衡度,响应于有节点的拒绝均衡度小于或等于预设拒绝阈值,确定该节点的列表属性属于拒绝列表;否则,确定该节点的列表属性属于接收列表。
76.本可选实现方式中,上述基于接收列表中各个节点的负载反馈信息和第一期望取值,得到接收均衡度,并基于接收均衡度调整接收列表中各个节点的列表属性包括:基于接收列表中节点对应最后一层均衡目标的反馈信息与第一期望取值之间的差异,计算出的接收均衡度,响应于有节点的接收均衡度小于或等于预设接收阈值,确定该节点的列表属性属于接收列表;否则,确定该节点的列表属性属于拒绝列表。
77.本可选实现方式中,上述基于拒绝列表中各个节点的初始分流比例、拒绝均衡度,得到拒绝列表中各个节点的拒绝分流比例包括:将绝列表中各个节点的初始分流比例、拒绝均衡度输入拒绝比例计算公式,得到拒绝分流比例。
78.拒绝比例计算公式如式(1)所示:
79.ratio
new
=ratio
old
+(1-ratio
old
)*diff
pos
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
80.在式(1)中,ratio
new
为拒绝分流比例,ratio
old
为初始分流比例,diff
pos
为拒绝均衡度。
81.本可选实现方式中,上述基于接收列表中各个节点的初始分流比例、接收均衡度,得到接收列表中各个节点的接收分流比例包括:将接收列表中各个节点的初始分流比例,接收均衡度输入接收比例计算公式,得到接收分流比例。
82.接收分流比例计算公式如式(2)所示:
83.ratio
new

=ratio
old’*(1-diff
neg
)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
84.在式(2)中,ratio
new

为接收分流比例,ratio
old’为初始分流比例,diff
pos
为接收均衡度。
85.本实施例中,上述基于拒绝分流比例和接收分流比例,为最终节点集群中的各个节点分配访问请求流包括:确定访问请求流的流量大小;将所有拒绝分流比例和接收分流
比例相加,得到总分流比例;针对各个节点,将该节点的分流比例(拒绝分流比例或接收分流比例)除以总分流比例再乘以流量大小,得到该节点的流量大小。
86.本实施例中,基于最后一层均衡目标的第一期望取值,将任意时刻整个最终节点集群的所有节点划分为“拒绝列表”和“接收列表”两部分,且节点实际取值与第一期望取值之间的数值差异表征了当前节点在最后一层均衡目标上的“均衡度”。拒绝列表中的节点采用减少分流比例策略,接收列表中的节点则增加分流比例,而分流策略的具体变化比例由当前节点的均衡度来决定。
87.具体地,高负载节点实时反馈其负载信息至收敛策略的处理逻辑;接着,处理策略基于节点实际负载与均衡目标期望负载之间的差异计算出对应节点的均衡度,进而确定出当前节点的列表属性;然后,根据当前节点的列表属性采用减少或增加分流比例的方式,以逐步降低当前节点的负载;最后,如果由于集群异常波动等因素导致当前节点经过分流策略调整后,负载降低过大,则该节点将随即过渡为低负载节点,并在下一处理周期中将其实时负载信息反馈至收敛策略的处理逻辑,以便在后续采用合适的分流比例调整方式。上述整个处理流程整体构成闭环逻辑,并能够根据集群中各节点负载的动态变化自适应调整对应节点的分流策略,进而实现整个集群节点负载的渐进收敛。
88.本可选实现方式提供的得到最终节点集群中各个节点的分流结果的方法,通过将节点集群划分为拒绝列表和接收列表两部分,并基于各节点周期性反馈的实时负载反馈信息计算均衡度,进而实现节点分流策略的自适应迭代更新,能够有效地减弱节点负载的异常抖动对分流结果的剧烈影响,进而维护了均衡效果的稳定性。
89.在本公开的一些可选实现方式中,基于拒绝列表中各个节点的负载反馈信息和第一期望取值,得到拒绝均衡度包括:基于拒绝列表中各个节点的负载反馈信息,确定拒绝列表中各个节点对应最后一层均衡目标的实际取值;基于拒绝列表中各个节点的实际取值和第一期望取值,得到拒绝列表中各个节点的拒绝均衡度。
90.本可选实现方式中,将拒绝列表中各个节点实际取值以及第一期望取值输入拒绝均衡度计算公式可以得到拒绝均衡度。
91.拒绝均衡度计算公式如式(3)所示:
92.diff
pos
=(load
cur-load
ref
)/load
cur
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)
93.在式(3)中,load
cur
为拒绝列表中各个节点实际取值,load
ref
为第一期望取值,diff
pos
为拒绝均衡度。
94.本可选实现方式提供的得到拒绝分流比例的方法,根据当前节点的实际取值和第一期望取值,得到当前节点的拒绝均衡度,通过实时计算拒绝均衡度可以有效地的判断拒绝列表中的节点的列表属性,为不同节点的属性划分提供了可靠的依据。
95.可选地,上述基于拒绝列表中各个节点的负载反馈信息和第一期望取值,得到拒绝均衡度包括:基于拒绝列表中各个节点的负载反馈信息,确定拒绝列表中各个节点对应最后一层均衡目标的实际取值;将拒绝列表中各个节点的实际取值与第一期望取值相比,得到拒绝列表中各个节点的拒绝均衡度。
96.在本公开的一些可选实现方式中,基于接收列表中各个节点的负载反馈信息和第一期望取值,得到接收均衡度包括:基于接收列表中各个节点的负载反馈信息,确定接收列表中各个节点对应最后一层均衡目标的实际取值;基于接收列表中各个节点的实际取值和
第一期望取值,得到接收列表中各个节点的接收均衡度。
97.本可选实现方式中,将接收列表中各个节点实际取值以及第一期望取值输入接收均衡度计算公式可以得到接收均衡度。
98.接收均衡度计算公式如式(4)所示:
99.diff
neg
=(load
cur
’‑
load
ref
)/load
ref
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4)
100.在式(4)中,load
cur’为接收列表中各个节点实际取值,load
ref
为第一期望取值,diff
neg
为接收均衡度。
101.本可选实现方式提供的得到接收分流比例的方法,根据当前节点的实际取值和第一期望取值,得到当前节点的接收均衡度,通过实时计算接收均衡度可以有效地的判断接收列表中的节点的列表属性,为不同节点的属性划分提供了可靠的依据。
102.可选地,基于接收列表中各个节点的负载反馈信息和第一期望取值,得到接收均衡度包括:基于接收列表中各个节点的负载反馈信息,确定接收列表中各个节点对应最后一层均衡目标的实际取值;将接收列表中各个节点对应最后一层均衡目标的实际取值与第一期望取值相比,得到接收列表中各个节点的接收均衡度。
103.在本公开的一个实施例中,至少一个均衡目标包括:服务可用率和优先级低于服务可用率的中央处理器利用率;接收初始节点集群的负载反馈信息包括:接收当前周期中初始节点集群中各个节点响应服务请求的成功数量和失败数量;接收当前周期中初始节点集群中各个节点反馈的中央处理器利用率。
104.如图4所示,针对在线服务应用场景,服务可用率指标往往具有更高的优先级,即l1级,与之相较的中央处理器(central processing unit,cpu)利用率则作为l2级均衡目标。
105.在对服务可用率目标进行均衡时,首先,统计当前周期内集群各节点请求的成功数量(即图4中的成功请求统计)和失败数量(即图4中的失败请求统计),以计算出单个服务节点的平均可用率(即图4中的单节点平均可用率);接着,通过汇总初始节点集群中所有节点的平均可用率,以获得初始节点集群的平均可用率(即图4中的节点集群平均可用率),并将其作为可用率均衡目标在当前周期内的期望取值;然后,基于各节点平均可用率与初始节点集群平均可用率之间的差异,确定出服务可用率满足期望取值的最终节点集群,对最终节点集群进行l2级cpu利用率目标均衡。
106.对l2级cpu利用率均衡目标的处理过程如下:首先,最终节点集群中所有节点的列表属性均被初始化为拒绝列表,同时设置各个节点的初始分流比例为0。接着,通过收集最终节点集群各节点周期性反馈的cpu利用率,计算出最终节点集群整体的cpu利用率均值,进而得到cpu利用率均衡目标的第一期望取值。最后,将针对实际迭代场景中不同属性的集群节点,先根据式(3)(4)获得节点cpu利用率的实际的拒绝均衡度和接收均衡度,再通过式(1)(2)得到拒绝分流比例和接收分流比例(即图4中的拒绝比例调整和接收比例调整)。
107.对于拒绝列表中的节点,其当前cpu利用率取值是基于上一周期的拒绝分流比例对节点减少分流而获得的;同时接收列表中各节点新增的流量则是直接基于上一周期的接收分流比例来按比例分配拒绝列表中节点减少的流量来得到。因此,拒绝列表的节点采用式(3)(1)来更新分流策略,其物理含义为:在保留上一周期分流比例对当前节点分流策略影响的同时,通过当前节点的均衡度来调整除分流比例之外的其余因素对节点分流策略的
影响。自然地,接收列表节点则通过式(4)(2)进行分流比例更新,由于接收列表中的节点仅是按比例进行分流,因此可将节点的均衡度直接作为影响因子来更新该节点上一周期的分流比例。值得注意的是,针对导致拒绝列表和接收列表中各节点cpu利用率变化的不同影响因素,通过式(3)获得的均衡度,不仅反映了节点实际cpu利用率与第一期望取值之间的绝对差异,还考虑了不同节点cpu利用率取值的实际大小差异;而式(4)则以集群cpu利用率的第一期望取值为基础,以避免不同节点cpu利用率取值的实际大小差异对均衡度的影响。
108.综上,在服务可用率和cpu利用率双目标分级反馈负载均衡中,在完成相关节点资源和数据结构初始化之后,通过统计各节点请求的成功/失败状态,以将集群中所有节点划分为低可用率和高可用率两部分。对于低可用率中的节点直接选择跳过,而高可用率中的节点,则进一步考虑其cpu利用率指标,并基于前述式(1)~(4)将高可用率节点划分为cpu拒绝列表和cpu接收列表,如果当前节点位于cpu接收列表,则命中当前请求并结束,即当前请求将被分流至该节点;否则,将跳过位于cpu拒绝列表中的当前节点,并尝试下一节点重复上述过程。最后,如果尝试次数达到上限或已遍历完所有候选节点(如图4中节点1、节点2

节点n),当前请求的分流过程将直接结束并返回失败;在所有的候选节点都换分完列表之后,基于分流策略为各个候选节点分配访问请求流的流量。
109.本实施例提供的负载均衡方法,在线节点集群的服务可用率和集群各节点的中央处理器利用率作为分布式在线服务高可用和高性能特征的直接体现,一直是在线系统设计中所关注的主要目标,因而将服务可用率和集群各节点的中央处理器利用率作为态负载均衡的优化目标具有重要的现实意义和应用价值,有效地保证了在线节点集群的负载均衡。
110.进一步参考图5,作为对上述各图所示任务生成方法的实现,本公开提供了负载均衡装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
111.如图5所示,本公开的实施例提供了一种负载均衡装置500,该装置500包括:确定单元501、得到单元502、接收单元503、筛选单元504、分流单元505。其中,上述确定单元501,可以被配置成响应于接收到对初始节点集群的访问请求流,确定至少一个均衡目标以及各个均衡目标的优先级。上述得到单元502,可以被配置成按照优先级的顺序依次分层排序至少一个均衡目标,得到目标层级。上述接收单元503,可以被配置成接收初始节点集群的负载反馈信息。上述筛选单元504,可以被配置成基于目标层级中除最后一层均衡目标之外的均衡目标和负载反馈信息,对初始节点集群分层筛选,得到满足目标层级的最终节点集群。上述分流单元505,可以被配置成基于最后一层均衡目标、最终节点集群的负载反馈信息和访问请求流,得到最终节点集群中各个节点的分流结果。
112.在本实施例中,负载均衡装置500中,确定单元501、得到单元502、接收单元503、筛选单元504、分流单元505的具体处理及其所带来的技术效果可分别参考图2对应实施例中的步骤201、步骤202、步骤203、步骤204、步骤205。
113.在一些实施例中,上述筛选单元504进一步被配置成:针对目标层级中的第一层均衡目标,基于负载反馈信息,对初始节点集群执行第一层均衡目标对应的筛选策略,得到第一层均衡目标筛选的节点集群;针对目标层级中的各个中间层均衡目标,基于负载反馈信息,对上一层中间层均衡目标筛选的节点集群执行该中间层均衡目标对应的筛选策略,得到满足该中间层均衡目标的中间节点集群,中间层均衡目标为目标层级中除第一层均衡目
标和最后一层均衡目标之外的各层均衡目标;响应于目标层级中所有中间层均衡目标对应的筛选策略执行完成,得到满足目标层级的最终节点集群。
114.在一些实施例中,上述筛选策略包括:基于上一层均衡目标筛选的节点集群中各个节点的负载反馈信息,计算当前周期中各个节点的该中间层均衡目标的平均目标指标值;计算该节点集群中所有节点的平均目标指标值;基于该节点集群中各个节点的平均目标指标值与所有节点的平均目标指标值之间的差异,筛选该节点集群中满足所有节点的平均目标指标值的负载,得到中间节点集群。
115.在一些实施例中,上述分流单元505包括:分组模块(图中未示出)、计算模块(图中未示出)、拒绝属性模块(图中未示出)、拒绝比例模块(图中未示出)、接收属性模块(图中未示出)、接收比例模块(图中未示出)、分配模块(图中未示出)。其中,上述分组模块,被配置成初始化最终节点集群中各个节点的初始分流比例以及列表属性为拒绝列表和接收列表;计算模块,被配置成基于负载反馈信息,计算最后一层均衡目标的第一期望取值;拒绝属性模块,被配置成基于拒绝列表中各个节点的负载反馈信息和第一期望取值,得到拒绝均衡度,并基于拒绝均衡度调整拒绝列表中各个节点的列表属性;拒绝比例模块,被配置成基于拒绝列表中各个节点的初始分流比例、拒绝均衡度,得到拒绝列表中各个节点的拒绝分流比例,并采用得到的拒绝分流比例替换拒绝列表中各个节点的初始分流比例;接收属性模块,被配置成基于接收列表中各个节点的负载反馈信息和第一期望取值,得到接收均衡度,并基于接收均衡度调整接收列表中各个节点的列表属性;接收比例模块,被配置成基于接收列表中各个节点的初始分流比例、接收均衡度,得到接收列表中各个节点的接收分流比例,并采用得到的拒绝分流比例替换接收列表中各个节点的初始分流比例;分配模块,被配置成基于拒绝分流比例和接收分流比例,为最终节点集群中的各个节点分配访问请求流。
116.在一些实施例中,上述拒绝属性模块进一步被配置成:基于拒绝列表中各个节点的负载反馈信息,确定拒绝列表中各个节点对应最后一层均衡目标的实际取值;基于拒绝列表中各个节点的实际取值和第一期望取值,得到拒绝列表中各个节点的拒绝均衡度。
117.在一些实施例中,上述接收属性模块进一步被配置成:基于接收列表中各个节点的负载反馈信息,确定接收列表中各个节点对应最后一层均衡目标的实际取值;基于接收列表中各个节点的实际取值和第一期望取值,得到接收列表中各个节点的接收均衡度。
118.在一些实施例中,至少一个均衡目标包括:服务可用率和优先级低于服务可用率的中央处理器利用率;上述接收单元进一步被配置成:接收当前周期中初始节点集群中各个节点响应服务请求的成功数量和失败数量;接收当前周期中初始节点集群中各个节点反馈的中央处理器利用率。
119.本公开的实施例提供的负载均衡装置,首先,确定单元501响应于接收到对初始节点集群的访问请求流,确定至少一个均衡目标以及各个均衡目标的优先级;其次,得到单元502按照优先级的顺序依次分层排序至少一个均衡目标,得到目标层级;再次,接收单元503接收初始节点集群的负载反馈信息;从次,筛选单元504基于目标层级中除最后一层均衡目标之外的均衡目标和负载反馈信息,对初始节点集群分层筛选,得到满足目标层级的最终节点集群;最后,分流单元505基于最后一层均衡目标、最终节点集群的负载反馈信息和访问请求流,得到最终节点集群中各个节点的分流结果。由此,至少一个均衡目标基于对应用服务的重要程度,按照优先级从大到小进行分级排序,且次优级均衡目标需要在较优级均
衡目标完成负载筛选之后再进行处理,无需考虑额外的集成权重,为流量请求预估出了最优的节点选择,实现了节点集群在不同优先级均衡目标上的整体负载均衡,提高了节点集群的资源利用率和性能;对于新增均衡目标,只需将其按照优先级顺序分层嵌套至目标层级相应位置即可处理,提高了负载均衡的效率。
120.下面参考图6,其示出了适于用来实现本公开的实施例的电子设备600的结构示意图。
121.如图6所示,电子设备600可以包括处理装置(例如中央处理器、图形处理器等)601,其可以根据存储在只读存储器(rom)602中的程序或者从存储装置608加载到随机访问存储器(ram)603中的程序而执行各种适当的动作和处理。在ram603中,还存储有电子设备600操作所需的各种程序和数据。处理装置601、rom 602以及ram603通过总线604彼此相连。输入/输出(i/o)接口605也连接至总线604。
122.通常,以下装置可以连接至i/o接口605:包括例如触摸屏、触摸板、键盘、鼠标、等的输入装置606;包括例如液晶显示器(lcd,liquid crystal display)、扬声器、振动器等的输出装置607;包括例如磁带、硬盘等的存储装置608;以及通信装置609。通信装置609可以允许电子设备600与其他设备进行无线或有线通信以交换数据。虽然图6示出了具有各种装置的电子设备600,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。图6中示出的每个方框可以代表一个装置,也可以根据需要代表多个装置。
123.特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置609从网络上被下载和安装,或者从存储装置608被安装,或者从rom 602被安装。在该计算机程序被处理装置601执行时,执行本公开的实施例的方法中限定的上述功能。
124.需要说明的是,本公开的实施例的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开的实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开的实施例中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、rf(radio frequency,射频)等等,或者上述的任意合适的组合。
125.上述计算机可读介质可以是上述服务器中所包含的;也可以是单独存在,而未装配入该服务器中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该服务器执行时,使得该服务器:响应于接收到对初始节点集群的访问请求流,确定至少一个均衡目标以及各个均衡目标的优先级;按照优先级的顺序依次分层排序至少一个均衡目标,得到目标层级;接收初始节点集群的负载反馈信息;基于目标层级中除最后一层均衡目标之外的均衡目标和负载反馈信息,对初始节点集群分层筛选,得到满足目标层级的最终节点集群;基于最后一层均衡目标、最终节点集群的负载反馈信息和访问请求流,得到最终节点集群中各个节点的分流结果。
126.可以以一种或多种程序设计语言或其组合来编写用于执行本公开的实施例的操作的计算机程序代码,程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
127.附图中的流程图和框图,图示了按照本公开的各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
128.描述于本公开的实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器,包括确定单元、得到单元、接收单元、筛选单元、分流单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,确定单元还可以被描述为“被配置成响应于接收到对初始节点集群的访问请求流,确定至少一个均衡目标以及各个均衡目标的优先级”的单元。
129.以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开的实施例中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开的实施例中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

技术特征:
1.一种负载均衡方法,所述方法包括:响应于接收到对初始节点集群的访问请求流,确定至少一个均衡目标以及各个均衡目标的优先级;按照所述优先级的顺序依次分层排序所述至少一个均衡目标,得到目标层级;接收所述初始节点集群的负载反馈信息;基于所述目标层级中除最后一层均衡目标之外的均衡目标和所述负载反馈信息,对所述初始节点集群分层筛选,得到满足所述目标层级的最终节点集群;基于所述最后一层均衡目标、所述最终节点集群的负载反馈信息和所述访问请求流,得到所述最终节点集群中各个节点的分流结果。2.根据权利要求1所述的方法,其中,所述基于所述目标层级中除最后一层均衡目标之外的均衡目标和所述负载反馈信息,对所述初始节点集群分层筛选,得到满足所述目标层级的最终节点集群包括:针对所述目标层级中的第一层均衡目标,基于所述负载反馈信息,对所述初始节点集群执行所述第一层均衡目标对应的筛选策略,得到所述第一层均衡目标筛选的节点集群;针对所述目标层级中的各个中间层均衡目标,基于所述负载反馈信息,对上一层中间层均衡目标筛选的节点集群执行该中间层均衡目标对应的筛选策略,得到满足该中间层均衡目标的中间节点集群,所述中间层均衡目标为所述目标层级中除所述第一层均衡目标和所述最后一层均衡目标之外的各层均衡目标;响应于所述目标层级中所有中间层均衡目标对应的筛选策略执行完成,得到满足所述目标层级的最终节点集群。3.根据权利要求2所述的方法,其中,所述筛选策略包括:基于上一层均衡目标筛选的节点集群中各个节点的负载反馈信息,计算当前周期中各个节点的该中间层均衡目标的平均目标指标值;计算该节点集群中所有节点的平均目标指标值;基于该节点集群中各个节点的平均目标指标值与所有节点的平均目标指标值之间的差异,筛选该节点集群中满足所有节点的平均目标指标值的负载,得到中间节点集群。4.根据权利要求1所述的方法,其中,所述基于所述最后一层均衡目标、所述最终节点集群的负载反馈信息和所述访问请求流,得到所述最终节点集群中各个节点的分流结果包括:初始化所述最终节点集群中各个节点的初始分流比例以及列表属性为拒绝列表和接收列表;基于所述最终节点集群的负载反馈信息,计算所述最后一层均衡目标的第一期望取值;基于所述拒绝列表中各个节点的负载反馈信息和所述第一期望取值,得到拒绝均衡度,并基于所述拒绝均衡度调整所述拒绝列表中各个节点的列表属性;基于所述拒绝列表中各个节点的初始分流比例、所述拒绝均衡度,得到所述拒绝列表中各个节点的拒绝分流比例,并采用得到的拒绝分流比例替换所述拒绝列表中各个节点的初始分流比例;基于所述接收列表中各个节点的负载反馈信息和所述第一期望取值,得到接收均衡
度,并基于所述接收均衡度调整所述接收列表中各个节点的列表属性;基于所述接收列表中各个节点的初始分流比例、所述接收均衡度,得到所述接收列表中各个节点的接收分流比例,并采用得到的拒绝分流比例替换所述接收列表中各个节点的初始分流比例;基于所述拒绝分流比例和所述接收分流比例,为所述最终节点集群中的各个节点分配所述访问请求流。5.根据权利要求4所述的方法,其中,所述基于所述拒绝列表中各个节点的负载反馈信息和所述第一期望取值,得到拒绝均衡度包括:基于所述拒绝列表中各个节点的负载反馈信息,确定所述拒绝列表中各个节点对应最后一层均衡目标的实际取值;基于所述拒绝列表中各个节点的实际取值和所述第一期望取值,得到所述拒绝列表中各个节点的拒绝均衡度。6.根据权利要求4所述的方法,其中,所述基于所述接收列表中各个节点的负载反馈信息和所述第一期望取值,得到接收均衡度包括:基于所述接收列表中各个节点的负载反馈信息,确定所述接收列表中各个节点对应最后一层均衡目标的实际取值;基于所述接收列表中各个节点的实际取值和所述第一期望取值,得到所述接收列表中各个节点的接收均衡度。7.根据权利要求1所述的方法,其中,所述至少一个均衡目标包括:服务可用率和优先级低于所述服务可用率的中央处理器利用率;所述接收所述初始节点集群的负载反馈信息包括:接收当前周期中所述初始节点集群中各个节点响应服务请求的成功数量和失败数量;接收当前周期中所述初始节点集群中各个节点反馈的中央处理器利用率。8.一种负载均衡装置,所述装置包括:确定单元,被配置成响应于接收到对初始节点集群的访问请求流,确定至少一个均衡目标以及各个均衡目标的优先级;得到单元,被配置成按照所述优先级的顺序依次分层排序所述至少一个均衡目标,得到目标层级;接收单元,被配置成接收所述初始节点集群的负载反馈信息;筛选单元,被配置成基于所述目标层级中除最后一层均衡目标之外的均衡目标和所述负载反馈信息,对所述初始节点集群分层筛选,得到满足所述目标层级的最终节点集群;分流单元,被配置成基于所述最后一层均衡目标、所述最终节点集群的负载反馈信息和所述访问请求流,得到所述最终节点集群中各个节点的分流结果。9.根据权利要求8所述的装置,其中,所述筛选单元进一步被配置成:针对所述目标层级中的第一层均衡目标,基于所述负载反馈信息,对所述初始节点集群执行所述第一层均衡目标对应的筛选策略,得到所述第一层均衡目标筛选的节点集群;针对所述目标层级中的各个中间层均衡目标,基于所述负载反馈信息,对上一层中间层均衡目标筛选的节点集群执行该中间层均衡目标对应的筛选策略,得到满足该中间层均衡目标的中间节点集群,所述中间层均衡目标为所述目标层级中除所述第一层均衡目标和所述最后一层均衡目标之外的各层均衡目标;
响应于所述目标层级中所有中间层均衡目标对应的筛选策略执行完成,得到满足所述目标层级的最终节点集群。10.一种电子设备,包括:一个或多个处理器;存储装置,其上存储有一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一项所述的方法。11.一种计算机可读介质,其上存储有计算机程序,其中,该程序被处理器执行时实现如权利要求1-7中任一项所述的方法。

技术总结
本公开提供了一种负载均衡方法和装置。该方法的一具体实施方式包括:响应于接收到对初始节点集群的访问请求流,确定至少一个均衡目标以及各个均衡目标的优先级;按照优先级的顺序依次分层排序至少一个均衡目标,得到目标层级;接收初始节点集群的负载反馈信息;基于目标层级中除最后一层均衡目标之外的均衡目标和负载反馈信息,对初始节点集群分层筛选,得到满足目标层级的最终节点集群;基于最后一层均衡目标、最终节点集群的负载反馈信息和访问请求流,得到最终节点集群中各个节点的分流结果。该实施方式提高了负载均衡的效率。该实施方式提高了负载均衡的效率。该实施方式提高了负载均衡的效率。


技术研发人员:王宝 金均生 齐浩 李健 王昆垚 戴移胜 张国威
受保护的技术使用者:北京京东世纪贸易有限公司
技术研发日:2023.03.08
技术公布日:2023/7/18
版权声明

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

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

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

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

分享:

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

相关推荐