CN113765966A - 一种负载均衡方法和装置 - Google Patents

一种负载均衡方法和装置 Download PDF

Info

Publication number
CN113765966A
CN113765966A CN202010903662.5A CN202010903662A CN113765966A CN 113765966 A CN113765966 A CN 113765966A CN 202010903662 A CN202010903662 A CN 202010903662A CN 113765966 A CN113765966 A CN 113765966A
Authority
CN
China
Prior art keywords
server
servers
subset
performance index
index
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202010903662.5A
Other languages
English (en)
Inventor
石朝阳
张衡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jingdong Century Trading Co Ltd
Beijing Wodong Tianjun Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Wodong Tianjun Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Jingdong Century Trading Co Ltd, Beijing Wodong Tianjun Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN202010903662.5A priority Critical patent/CN113765966A/zh
Publication of CN113765966A publication Critical patent/CN113765966A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/101Server selection for load balancing based on network conditions

Abstract

本发明公开了一种负载均衡方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:获取服务器集群中服务器的第一性能指标,根据第一性能指标和设定的筛选规则,从服务器集群中选择服务器,得到第一服务器子集;获取第一服务器子集中服务器的第二性能指标,根据第二性能指标和设定的指标阈值,从第一服务器子集中选择服务器,得到第二服务器子集;根据为服务器配置的权重信息和第二性能指标,计算第二服务器子集中服务器的指标加权值,将网络请求发送至最小指标加权值对应的服务器。该实施方式通过获取第一性能指标和第二性能指标来感知服务器性能和实时网络状况,进而分配网络请求,避免请求积压,自适应性强,资源利用更加合理化。

Description

一种负载均衡方法和装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种负载均衡方法和装置。
背景技术
为了提高整个系统的吞吐量和并发性,需要采用负载均衡技术将网络请求均衡分配到服务器集群中的每个服务器上。现有的负载均衡技术其实现原理一般为:采用一定的计算方式,从服务器集群中选择合适的服务器并返回。比如,采用随机算法,从服务器集群中选择服务器并返回。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
现有的负载均衡技术是在不知道各服务器性能和网络状况的情况下进行网络请求分配,容易造成请求积压,服务器集群整体的CPU(Central Processing Unit,中央处理器)使用率不均,服务器集群整体可承受的OPS(Operation per second,每秒的请求数)偏低。
发明内容
有鉴于此,本发明实施例提供一种负载均衡方法和装置,通过获取第一性能指标和第二性能指标来感知服务器性能和实时网络状况,筛选服务器,进而分配网络请求,避免请求积压,自适应性强,资源利用更加合理化。
为实现上述目的,根据本发明实施例的一个方面,提供了一种负载均衡方法。
本发明实施例的一种负载均衡方法,包括:获取服务器集群中服务器的第一性能指标,根据所述第一性能指标和设定的筛选规则,从所述服务器集群中选择服务器,得到第一服务器子集;其中,所述第一性能指标表征请求处理效率;获取所述第一服务器子集中服务器的第二性能指标,根据所述第二性能指标和设定的指标阈值,从所述第一服务器子集中选择服务器,得到第二服务器子集;其中,所述第二性能指标表征请求处理时延;根据为所述服务器配置的权重信息和所述第二性能指标,计算所述第二服务器子集中服务器的指标加权值,将网络请求发送至最小指标加权值对应的服务器。
可选地,所述第二性能指标为TP指标或者平均响应时间;根据所述第二性能指标和设定的指标阈值,从所述第一服务器子集中选择服务器,得到第二服务器子集,包括:判断所述第一服务器子集中服务器的第二性能指标是否大于等于设定的指标阈值;从所述第一服务器子集中过滤所述第二性能指标大于等于所述指标阈值的服务器,得到所述第二服务器子集。
可选地,根据为所述服务器配置的权重信息和所述第二性能指标,计算所述第二服务器子集中服务器的指标加权值,包括:判断所述第二服务器子集中的服务器是否配置有权重信息;如果所述服务器未配置所述权重信息,则将所述第二性能指标作为所述服务器的指标加权值;如果所述服务器配置有所述权重信息,则将所述权重信息与所述第二性能指标的相乘结果作为所述服务器的指标加权值。
可选地,所述第一性能指标为调用失败次数、吞吐量或者平均吞吐量;所述筛选规则包括第一子规则和第二子规则;根据所述第一性能指标和设定的筛选规则,从所述服务器集群中选择服务器,得到第一服务器子集,包括:根据所述第一性能指标和所述第一子规则,从所述服务器集群中选择服务器,得到子集群;计算所述第一性能指标满足设定基准值的服务器在所述子集群的占比,比较所述占比与设定比例阈值的大小;根据比较结果,将所述子集群作为第一服务器子集,或者根据第三性能指标和所述第二子规则,从所述子集群中选择服务器,得到所述第一服务器子集;其中,所述第三性能指标表征服务器负载情况。
可选地,根据比较结果,将所述子集群作为第一服务器子集,或者根据第三性能指标和所述第二子规则,从所述子集群中选择服务器,得到所述第一服务器子集,包括:如果所述占比小于所述比例阈值,则将所述子集群作为所述第一服务器子集;如果所述占比大于等于所述比例阈值,则获取所述子集群中服务器的第三性能指标,根据所述第三性能指标和所述第二子规则,从所述子集群中选择服务器,得到所述第一服务器子集。
可选地,所述第三性能指标为并发请求数或者用户请求数;所述第一子规则为:所述服务器集群中前M个请求处理效率高的服务器;其中,M为自定义的整数,或者为所述服务器集群中服务器的总数量与设定第一比例的乘积;所述第二子规则为:所述子集群中前N个负载低的服务器;其中,N为自定义的整数,或者为所述子集群中服务器的总数量与设定第二比例的乘积。
可选地,所述方法还包括:循环执行获取选择步骤和计算发送步骤,以使得发送至所述服务器集群中负载高的服务器的网络请求逐渐减少,发送至所述服务器集群中负载低的服务器的网络请求逐渐增加;其中,所述获取选择步骤为获取所述第二性能指标,从所述第一服务器子集中选择服务器的步骤;所述计算发送步骤为计算所述指标加权值,将网络请求发送至最小指标加权值对应的服务器的步骤。
为实现上述目的,根据本发明实施例的另一方面,提供了一种负载均衡装置。
本发明实施例的一种负载均衡装置,包括:第一选择模块,用于获取服务器集群中服务器的第一性能指标,根据所述第一性能指标和设定的筛选规则,从所述服务器集群中选择服务器,得到第一服务器子集;其中,所述第一性能指标表征请求处理效率;第二选择模块,用于获取所述第一服务器子集中服务器的第二性能指标,根据所述第二性能指标和设定的指标阈值,从所述第一服务器子集中选择服务器,得到第二服务器子集;其中,所述第二性能指标表征请求处理时延;请求发送模块,用于根据为所述服务器配置的权重信息和所述第二性能指标,计算所述第二服务器子集中服务器的指标加权值,将网络请求发送至最小指标加权值对应的服务器。
可选地,所述第二性能指标为TP指标或者平均响应时间;所述第二选择模块,还用于:判断所述第一服务器子集中服务器的第二性能指标是否大于等于设定的指标阈值;以及从所述第一服务器子集中过滤所述第二性能指标大于等于所述指标阈值的服务器,得到所述第二服务器子集。
可选地,所述请求发送模块,还用于判断所述第二服务器子集中的服务器是否配置有权重信息;如果所述服务器未配置所述权重信息,则将所述第二性能指标作为所述服务器的指标加权值;如果所述服务器配置有所述权重信息,则将所述权重信息与所述第二性能指标的相乘结果作为所述服务器的指标加权值。
可选地,所述第一性能指标为调用失败次数、吞吐量或者平均吞吐量;所述筛选规则包括第一子规则和第二子规则;所述第一选择模块,还用于根据所述第一性能指标和所述第一子规则,从所述服务器集群中选择服务器,得到子集群;计算所述第一性能指标满足设定基准值的服务器在所述子集群的占比,比较所述占比与设定比例阈值的大小;根据比较结果,将所述子集群作为第一服务器子集,或者根据第三性能指标和所述第二子规则,从所述子集群中选择服务器,得到所述第一服务器子集;其中,所述第三性能指标表征服务器负载情况。
可选地,所述第一选择模块,还用于如果所述占比小于所述比例阈值,则将所述子集群作为所述第一服务器子集;如果所述占比大于等于所述比例阈值,则获取所述子集群中服务器的第三性能指标,根据所述第三性能指标和所述第二子规则,从所述子集群中选择服务器,得到所述第一服务器子集。
可选地,所述第三性能指标为并发请求数或者用户请求数;所述第一子规则为:所述服务器集群中前M个请求处理效率高的服务器;其中,M为自定义的整数,或者为所述服务器集群中服务器的总数量与设定第一比例的乘积;所述第二子规则为:所述子集群中前N个负载低的服务器;其中,N为自定义的整数,或者为所述子集群中服务器的总数量与设定第二比例的乘积。
可选地,所述装置还包括:循环处理模块,用于循环执行获取选择步骤和计算发送步骤,以使得发送至所述服务器集群中负载高的服务器的网络请求逐渐减少,发送至所述服务器集群中负载低的服务器的网络请求逐渐增加;其中,所述获取选择步骤为获取所述第二性能指标,从所述第一服务器子集中选择服务器的步骤;所述计算发送步骤为计算所述指标加权值,将网络请求发送至最小指标加权值对应的服务器的步骤。
为实现上述目的,根据本发明实施例的再一方面,提供了一种电子设备。
本发明实施例的一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例的一种负载均衡方法。
为实现上述目的,根据本发明实施例的再一方面,提供了一种计算机可读介质。
本发明实施例的一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例的一种负载均衡方法。
上述发明中的一个实施例具有如下优点或有益效果:
通过获取第一性能指标和第二性能指标来感知服务器性能和实时网络状况,筛选服务器,进而分配网络请求,避免请求积压,自适应性强,资源利用更加合理化;使用TP指标或者平均响应时间筛选出请求处理延时小的服务器,以优先给这些服务器分配较多的网络请求,避免请求积压,合理利用资源;基于权重设置,计算服务器的指标加权值,进而根据服务器对集群的贡献进行网络请求分配;
使用调用失败次数、吞吐量或者平均吞吐量评估服务器对请求的处理能力,并结合服务器负载情况筛选服务器,以优先给处理能力强、负载低的服务器分配网络请求,能够更好的评估集群性能,合理利用资源;在服务器的请求处理效率较高的情况下,按照负载情况筛选负载低的服务器,使得后续可以优先向负载低的服务器分配网络请求;
通过循环获取第二性能指标并分配网络请求,使得集群中负载高的服务器逐渐被分配给较少的网络请求,负载低的服务器逐渐被分配给较多的网络请求,资源利用更加合理,保证了集群的整体平衡性,可承受的OPS增加,同时增强了对网络突发状态的适应性。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的负载均衡方法的主要步骤的示意图;
图2是根据本发明实施例的负载均衡方法的主要流程示意图;
图3是本发明实施例中从子集群中选择服务器的实现流程图;
图4是本发明实施例中计算指标加权值的实现流程图;
图5是使用本发明实施例的负载均衡方法前后的效果对比图;
图6是根据本发明实施例的负载均衡装置的主要模块的示意图;
图7是本发明实施例可以应用于其中的示例性系统架构图;
图8是适用于来实现本发明实施例的电子设备的计算机装置的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本发明实施例的负载均衡方法的主要步骤的示意图。如图1所示,本发明实施例的负载均衡方法,主要包括如下步骤:
步骤S101:获取服务器集群中服务器的第一性能指标,根据所述第一性能指标和设定的筛选规则,从所述服务器集群中选择服务器,得到第一服务器子集。其中,第一性能指标表征请求处理效率,比如可以为调用失败次数、吞吐量、平均吞吐量等。调用失败次数为K次(比如100次、150次等)调用中调用失败的次数,吞吐量为单位时间内集群能处理的请求数量,平均吞吐量为一段时间内吞吐量的平均值。
遍历服务器集群中的服务器,检测服务器的第一性能指标,以获知各服务器的请求处理效率。之后根据第一性能指标和筛选规则,从服务器集群中选择若干服务器,选择出的服务器即构成第一服务器子集。其中,筛选规则用于从服务器集群中选择出请求处理效率高或者当前负载低的服务器。
步骤S102:获取所述第一服务器子集中服务器的第二性能指标,根据所述第二性能指标和设定的指标阈值,从所述第一服务器子集中选择服务器,得到第二服务器子集。其中,第二性能指标表征请求处理时延,比如可以为TP(Top Percentile,百分数)指标、平均响应时间等。TP指标包括TP99、TP999等,分别指集群中99%、99.9%的服务器的响应时间;平均响应时间指一段时间内响应时间的平均值。TP999相比TP99更能反映整体的集群性能。
该步骤中,检测第一服务器子集中服务器的第二性能指标,以获知各服务器的请求处理时延。之后根据第二性能指标和指标阈值,从第一服务器子集中选择出第二性能指标小于等于指标阈值的服务器,选择出的服务器即构成第二服务器子集。其中,指标阈值可以根据需求自定义设置。
步骤S103:根据为所述服务器配置的权重信息和所述第二性能指标,计算所述第二服务器子集中服务器的指标加权值,将网络请求发送至最小指标加权值对应的服务器。判断第二服务器子集中的服务器是否配置有权重信息,如果未配置权重信息,说明各服务器对集群的贡献相同,则优先将网络请求发送至最小第二性能指标对应的服务器。
如果配置有权重信息,说明各服务器对集群的贡献有大有小,则按照权重大小,计算指标加权值,并优先将网络请求发送至最小指标加权值对应的服务器。该实施例通过获取第一性能指标和第二性能指标来感知服务器性能和实时网络状况,进而根据服务器性能和实时网络状况,动态调整各服务器分配网络请求的数量,避免请求积压,对网络状况的自适应性强,资源利用更加合理化。
图2是根据本发明实施例的负载均衡方法的主要流程示意图。如图2所示,本发明实施例的负载均衡方法,主要包括如下步骤:
步骤S201:遍历获取服务器集群中的服务器,以及各服务器的第一性能指标。针对需要进行负载均衡处理的服务器集群,遍历该集群中的服务器,获取每个服务器的第一性能指标。实施例中,服务器为服务提供方(Provider),服务提供方是RPC(Remote ProcedureCall Protocol,远程过程调用协议)调用中作为服务端提供服务的一方。
由于第一性能指标可以直接反应一个服务器集群的整体压力负载情况,故优先对此指标进行处理。以第一性能指标为调用失败次数为例,其可以通过每个服务器内置的调用成功率计数器来获得。
步骤S202:根据第一性能指标和第一子规则,从服务器集群中选择服务器,得到子集群。第一子规则用于从服务器集群中选择出请求处理效率高的服务器。以第一性能指标为调用失败次数为例,调用失败次数越少,说明服务器对请求的处理能力越强,故第一子规则可以为服务器集群中前M个调用失败次数少的服务器。
再比如,第一性能指标为吞吐量时,吞吐量越大,说明服务器对请求的处理能力越强,故第一子规则可以为服务器集群中前M个吞吐量大的服务器。其中,M为自定义的整数,或者为服务器集群中服务器的总数量与设定第一比例的乘积。第一比例可自定义设置,比如为8%、10%、15%等。
具体地,该步骤可以按照调用失败次数由小到大(或者吞吐量由大到小)的顺序,将服务器集群中的服务器进行排序,之后选取排名为前10%的服务器添加到子集群。
步骤S203:判断第一性能指标满足设定基准值的服务器在子集群的占比是否大于等于设定比例阈值,如果占比小于比例阈值,则执行步骤S204;如果占比大于等于比例阈值,则执行步骤S205。基准值和比例阈值均可以根据需求设定。
以第一性能指标为调用失败次数为例,基准值可以设定为0、1等,比例阈值可以设置为90%、95%等。该步骤首先计算第一性能指标满足基准值的服务器在子集群的占比,即计算调用失败次数为0(或者小于等于1)的服务器在子集群的占比,之后再比较占比与比例阈值的大小。
步骤S204:将子集群作为第一服务器子集,执行步骤S206。
步骤S205:根据第三性能指标和第二子规则,从子集群中选择服务器,得到第一服务器子集,执行步骤S206。其中,第三性能指标表征服务器负载情况,比如可以为并发请求数、用户请求数。并发请求数是指服务器同时能处理的请求数量;用户请求数是指服务器单位时间内接收到的请求数量。
第二子规则用于从子集群中选择出当前负载低的服务器。以第三性能指标为并发请求数为例,并发请求数越少,说明服务器的负载越小,故第二子规则可以为服务器集群中前N个并发请求数少的服务器。同样地,用户请求数越小,说明服务器的负载越小。故第二子规则也可以为服务器集群中前N个用户请求数少的服务器。其中,N为自定义的整数,或者为子集群中服务器的总数量与设定第二比例的乘积。第二比例可自定义设置,比如为8%、10%、15%等。当一个服务器集群本身的服务器数量比较小时,调用失败次数为0的服务器占比很大,此时将无法感知服务器集群的抗量能力(即服务器集群所能承受流量、并发请求量的能力),因此需要转换检测对象,即从检测调用失败次数转换为检测最小并发请求数,进而可以清楚的获知服务器集群中,哪些服务器目前承受的并发请求数最小,后续可以将网络请求向这些服务器发送。
仍旧以第一性能指标为调用失败次数、第三性能指标为并发请求数为例,如果调用失败次数为0的服务器在子集群的占比大于等于比例阈值,则进一步从子集群中选择服务器,得到第一服务器子集。该步骤的具体实现见后续关于图3的描述。
步骤S206:获取第一服务器子集中服务器的第二性能指标。上述步骤虽然获取到并发请求数量小的服务器,但是并不知道这些服务器的性能,因此需要利用第二性能指标进行评估。实施例中,可以获取第一服务器子集中服务器最近100次调用的TP999,该TP999可以通过每个服务器内置的TP记录容器求均值获得。假设某个服务器在1秒中内被请求1000次,把这些请求的耗时按照从小到大的顺序排列,其中第990-999次请求的平均耗时即为TP999的值。
通过TP999,可以方便的获知并发请求数量小的服务器中,哪些处理能力较强,哪些处理能力较弱,哪些服务器当前网络状况不好,以使得后续进行网络请求分配时,可以为并发请求数量小、且TP999时延低的服务器优先分配较多的网络请求;对应并发请求数量小、但TP999时延低的服务器优先分配较少的网络请求。
步骤S207:判断第一服务器子集中服务器的第二性能指标是否大于等于设定的指标阈值,如果第二性能指标大于等于指标阈值,则执行步骤S208;如果第二性能指标小于指标阈值,则执行步骤S209。
步骤S208:从第一服务器子集中过滤第二性能指标大于等于指标阈值的服务器。在TP999大于等于指标阈值(timeout)时,比如timeout为1秒,虽然服务器的并发请求数不多,但是服务器本身的处理能力已经很差,故需剔除第一服务器子集中TP999大于等于timeout的服务器。
步骤S209:将第一服务器子集中保留的服务器作为第二服务器子集。
步骤S210:根据为服务器配置的权重信息和第二性能指标,计算第二服务器子集中服务器的指标加权值。实施例中,可以按照TP999由小到大的顺序,对第二服务器子集的服务器进行排序,判断各服务器是否配置有权重信息,根据判断结果计算指标加权值。该步骤的具体实现见后续关于图4的描述。
步骤S211:将网络请求发送至最小指标加权值对应的服务器。上述步骤中,先按第一性能指标筛选服务器(即步骤S201-步骤S202),再按第三性能指标筛选服务器(即步骤S205),最后按第二性能指标筛选服务器(即步骤S206-步骤S211),即可动态得出性能最好的服务器。
本实施例使用调用失败次数评估服务器对请求的处理能力,并结合服务器负载情况筛选服务器,以优先给处理能力强、负载低的服务器分配网络请求,能够更好的评估集群性能,合理利用资源;同时在服务器调用失败次数较少的情况下,按照最小并发请求数筛选服务器,使得后续可以优先向并发请求数少的服务器分配网络请求。
图3是本发明实施例中从子集群中选择服务器的实现流程图。如图3所示,本发明实施例的从子集群中选择服务器(即步骤S205)的实现流程,主要包括以下步骤:
步骤S301:获取子集群中服务器的并发请求数。在获取并发请求数时,可以获取一段时间内采用调用的并发请求数。比如获取1分钟内(该值仅为示例,能准确或者相对准确的反应服务器负载情况的取值均可替换)第1秒采样、第10秒采样、第45秒采样、第60秒采样的采样值,将采样值求和得到并发请求数。
步骤S302:按照并发请求数由小到大的顺序,将子集群中服务器进行排序。
步骤S303:将并发请求数满足第二子规则的服务器添加到第一服务器子集。实施例中,选取排名为前10%的服务器添加到第一服务器子集。
图4是本发明实施例中计算指标加权值的实现流程图。如图4所示,本发明实施例的计算指标加权值(即步骤S210)的实现流程,主要包括以下步骤:
步骤S401:判断第二服务器子集中的服务器是否配置有权重信息,如果未配置权重信息,则执行步骤S402;如果配置有权重信息,则执行步骤S403。服务器的权重信息可以自定义设置。
步骤S402:将第二性能指标作为服务器的指标加权值,结束本流程。如果未设置权重信息,说明所有服务器的权重相同,服务器的第二性能指标即为该服务器的指标加权值。
步骤S403:计算服务器的第二性能指标与对应权重信息的相乘结果,将相乘结果作为服务器的指标加权值,结束本流程。如果设置有权重信息,则按照权重大小计算指标加权值。
比如第二服务器子集中有两个服务器,分别为ProviderA和ProviderB,ProviderA的权重为3,TP999为600ms;ProviderB的权重为5,TP999为400ms。则ProviderA的加权指标值=3×600=1800ms,ProviderB的加权指标值=5×400=2000ms,由于2000>1800,故后续会选择ProviderA优先分配网络请求。
在一优选的实施例中,可以循环执行步骤S102和步骤S103。由于TP999的实时检测,使得本实施例的负载均衡具有极强的自适应性,不会出现一个服务器集群本身并发请求数少,但是由于网络抖动导致TP999时延高,导致大量网络请求被积压的情况。
同时由于TP999的实时检测,使得服务器集群中负载高的服务器逐渐被分配给较少的网络请求,使其响应能力慢慢恢复;而服务器集群中负载低的服务器,则逐渐被分配较多的网络请求,是其资源利用更加合理化。最终使得整个服务器集群的CPU利用率更加均衡,整体的OPS响应也慢慢上升,同时对网络突发状况的适应性也随之增强。
图5是使用本发明实施例的负载均衡方法前后的效果对比图。其中,(a)图为使用传统负载均衡方法所得到的某个服务器集群中服务器的CPU使用率曲线;(b)图为使用本发明实施例的负载均衡方法所得到的同一服务器集群中服务器的CPU使用率曲线。
由图5可知,传统负载均衡方法,服务器集群中服务器的CPU使用率在30%到70%之间浮动,并不能很好的均衡CPU使用率。而本发明的负载均衡方法,由于兼顾了调用失败次数、并发请求数、TP999和权重,可以感知到服务器的整体处理能力,对集群整体的性能评估更加全面均衡,进而使得服务器集群中服务器的CPU使用率整体均值在40%,相比传统方式更加均衡。
图6是根据本发明实施例的负载均衡装置的主要模块的示意图。如图6所示,本发明实施例的负载均衡装置600,主要包括:
第一选择模块601,用于获取服务器集群中服务器的第一性能指标,根据所述第一性能指标和设定的筛选规则,从所述服务器集群中选择服务器,得到第一服务器子集。其中,第一性能指标表征请求处理效率,比如可以为调用失败次数、吞吐量、平均吞吐量等。
遍历服务器集群中的服务器,检测服务器的第一性能指标,以获知各服务器的请求处理效率。之后根据第一性能指标和筛选规则,从服务器集群中选择若干服务器,选择出的服务器即构成第一服务器子集。其中,筛选规则用于从服务器集群中选择出请求处理效率高或者当前负载低的服务器。
第二选择模块602,用于获取所述第一服务器子集中服务器的第二性能指标,根据所述第二性能指标和设定的指标阈值,从所述第一服务器子集中选择服务器,得到第二服务器子集。其中,第二性能指标表征请求处理时延,比如可以为TP指标、平均响应时间等。
该模块中,首先检测第一服务器子集中服务器的第二性能指标,以获知各服务器的请求处理时延。之后根据第二性能指标和指标阈值,从第一服务器子集中选择出第二性能指标小于等于指标阈值的服务器,选择出的服务器即构成第二服务器子集。其中,指标阈值可以根据需求自定义设置。
请求发送模块603,用于根据为所述服务器配置的权重信息和所述第二性能指标,计算所述第二服务器子集中服务器的指标加权值,将网络请求发送至最小指标加权值对应的服务器。该模块判断第二服务器子集中的服务器是否配置有权重信息,如果未配置权重信息,说明各服务器对集群的贡献相同,则优先将网络请求发送至最小第二性能指标对应的服务器。
如果配置有权重信息,说明各服务器对集群的贡献有大有小,则按照权重大小,计算指标加权值,并优先将网络请求发送至最小指标加权值对应的服务器。
另外,本发明实施例的负载均衡装置600还可以包括:循环处理模块(图6中未示出),该模块用于循环执行第二选择模块602和请求发送模块603的处理过程,以使得发送至所述服务器集群中负载高的服务器的网络请求逐渐减少,发送至所述服务器集群中负载低的服务器的网络请求逐渐增加。
从以上描述可以看出,通过获取第一性能指标和第二性能指标来感知服务器性能和实时网络状况,进而根据服务器性能和实时网络状况,筛选服务器,动态调整分配网络请求的数量,避免请求积压,对网络状况的自适应性强,资源利用更加合理化。
图7示出了可以应用本发明实施例的负载均衡方法或负载均衡装置的示例性系统架构700。
如图7所示,系统架构700可以包括终端设备701、702、703,网络704、706,负载均衡服务器705,归属于同一服务器集群的服务器707、708。网络704用以在终端设备701、702、703和负载均衡服务器705之间提供通信链路的介质。网络706用以在负载均衡服务器705与服务器707、708之间提供通信链路的介质。网络704、706可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备701、702、703通过网络704与负载均衡服务器705交互,以接收或发送消息等。负载均衡服务器705通过网络706与属于同一服务器集群的服务器707、708交互,以接收或发送消息。终端设备701、702上可以安装有各种通讯客户端应用。
终端设备701、702、703可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
负载均衡服务器705可以是具有接收消息、转发消息、实现负载均衡等功能的服务器,例如对管理员利用终端设备701、702、703发送的消息进行处理的后台管理服务器。后台管理服务器可以根据负载均衡方法将消息转发至服务器707、708中某一个服务器。
需要说明的是,本申请实施例所提供的负载均衡方法一般由负载均衡服务器705执行,相应地,负载均衡装置一般设置于负载均衡服务器705中。
应该理解,图7中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
根据本发明的实施例,本发明还提供了一种电子设备和一种计算机可读介质。
本发明的电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例的一种负载均衡方法。
本发明的计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例的一种负载均衡方法。
下面参考图8,其示出了适用于来实现本发明实施例的电子设备的计算机系统800的结构示意图。图8示出的电子设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图8所示,计算机系统800包括中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。在RAM 803中,还存储有计算机系统800操作所需的各种程序和数据。CPU 801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
以下部件连接至I/O接口805:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
特别地,根据本发明公开的实施例,上文主要步骤图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行主要步骤图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被中央处理单元(CPU)801执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括第一选择模块、第二选择模块和请求发送模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,第一选择模块还可以被描述为“获取服务器集群中服务器的第一性能指标,根据所述第一性能指标和设定的筛选规则,从所述服务器集群中选择服务器,得到第一服务器子集的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:获取服务器集群中服务器的第一性能指标,根据所述第一性能指标和设定的筛选规则,从所述服务器集群中选择服务器,得到第一服务器子集;其中,所述第一性能指标表征请求处理效率;获取所述第一服务器子集中服务器的第二性能指标,根据所述第二性能指标和设定的指标阈值,从所述第一服务器子集中选择服务器,得到第二服务器子集;其中,所述第二性能指标表征请求处理时延;根据为所述服务器配置的权重信息和所述第二性能指标,计算所述第二服务器子集中服务器的指标加权值,将网络请求发送至最小指标加权值对应的服务器。
根据本发明实施例的技术方案,通过获取第一性能指标和第二性能指标来感知服务器性能和实时网络状况,进而根据服务器性能和实时网络状况,筛选服务器,动态调整分配网络请求的数量,避免请求积压,对网络状况的自适应性强,资源利用更加合理化。
上述产品可执行本发明实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明实施例所提供的方法。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (11)

1.一种负载均衡方法,其特征在于,包括:
获取服务器集群中服务器的第一性能指标,根据所述第一性能指标和设定的筛选规则,从所述服务器集群中选择服务器,得到第一服务器子集;其中,所述第一性能指标表征请求处理效率;
获取所述第一服务器子集中服务器的第二性能指标,根据所述第二性能指标和设定的指标阈值,从所述第一服务器子集中选择服务器,得到第二服务器子集;其中,所述第二性能指标表征请求处理时延;
根据为所述服务器配置的权重信息和所述第二性能指标,计算所述第二服务器子集中服务器的指标加权值,将网络请求发送至最小指标加权值对应的服务器。
2.根据权利要求1所述的方法,其特征在于,所述第二性能指标为TP指标或者平均响应时间;
根据所述第二性能指标和设定的指标阈值,从所述第一服务器子集中选择服务器,得到第二服务器子集,包括:
判断所述第一服务器子集中服务器的第二性能指标是否大于等于设定的指标阈值;
从所述第一服务器子集中过滤所述第二性能指标大于等于所述指标阈值的服务器,得到所述第二服务器子集。
3.根据权利要求1或2所述的方法,其特征在于,根据为所述服务器配置的权重信息和所述第二性能指标,计算所述第二服务器子集中服务器的指标加权值,包括:
判断所述第二服务器子集中的服务器是否配置有权重信息;
如果所述服务器未配置所述权重信息,则将所述第二性能指标作为所述服务器的指标加权值;
如果所述服务器配置有所述权重信息,则将所述权重信息与所述第二性能指标的相乘结果作为所述服务器的指标加权值。
4.根据权利要求1所述的方法,其特征在于,所述第一性能指标为调用失败次数、吞吐量或者平均吞吐量;所述筛选规则包括第一子规则和第二子规则;
根据所述第一性能指标和设定的筛选规则,从所述服务器集群中选择服务器,得到第一服务器子集,包括:
根据所述第一性能指标和所述第一子规则,从所述服务器集群中选择服务器,得到子集群;
计算所述第一性能指标满足设定基准值的服务器在所述子集群的占比,比较所述占比与设定比例阈值的大小;
根据比较结果,将所述子集群作为第一服务器子集,或者根据第三性能指标和所述第二子规则,从所述子集群中选择服务器,得到所述第一服务器子集;其中,所述第三性能指标表征服务器负载情况。
5.根据权利要求4所述的方法,其特征在于,根据比较结果,将所述子集群作为第一服务器子集,或者根据第三性能指标和所述第二子规则,从所述子集群中选择服务器,得到所述第一服务器子集,包括:
如果所述占比小于所述比例阈值,则将所述子集群作为所述第一服务器子集;
如果所述占比大于等于所述比例阈值,则获取所述子集群中服务器的第三性能指标,根据所述第三性能指标和所述第二子规则,从所述子集群中选择服务器,得到所述第一服务器子集。
6.根据权利要求4或5所述的方法,其特征在于,所述第三性能指标为并发请求数或者用户请求数;
所述第一子规则为:所述服务器集群中前M个请求处理效率高的服务器;其中,M为自定义的整数,或者为所述服务器集群中服务器的总数量与设定第一比例的乘积;
所述第二子规则为:所述子集群中前N个负载低的服务器;其中,N为自定义的整数,或者为所述子集群中服务器的总数量与设定第二比例的乘积。
7.根据权利要求1-2、4-5中任一项所述的方法,其特征在于,所述方法还包括:
循环执行获取选择步骤和计算发送步骤,以使得发送至所述服务器集群中负载高的服务器的网络请求逐渐减少,发送至所述服务器集群中负载低的服务器的网络请求逐渐增加;
其中,所述获取选择步骤为获取所述第二性能指标,从所述第一服务器子集中选择服务器的步骤;所述计算发送步骤为计算所述指标加权值,将网络请求发送至最小指标加权值对应的服务器的步骤。
8.一种负载均衡装置,其特征在于,包括:
第一选择模块,用于获取服务器集群中服务器的第一性能指标,根据所述第一性能指标和设定的筛选规则,从所述服务器集群中选择服务器,得到第一服务器子集;其中,所述第一性能指标表征请求处理效率;
第二选择模块,用于获取所述第一服务器子集中服务器的第二性能指标,根据所述第二性能指标和设定的指标阈值,从所述第一服务器子集中选择服务器,得到第二服务器子集;其中,所述第二性能指标表征请求处理时延;
请求发送模块,用于根据为所述服务器配置的权重信息和所述第二性能指标,计算所述第二服务器子集中服务器的指标加权值,将网络请求发送至最小指标加权值对应的服务器。
9.根据权利要求8所述的装置,其特征在于,所述第二性能指标为TP指标或者平均响应时间;所述第二选择模块,还用于:
判断所述第一服务器子集中服务器的第二性能指标是否大于等于设定的指标阈值;以及
从所述第一服务器子集中过滤所述第二性能指标大于等于所述指标阈值的服务器,得到所述第二服务器子集。
10.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的方法。
11.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-7中任一所述的方法。
CN202010903662.5A 2020-09-01 2020-09-01 一种负载均衡方法和装置 Pending CN113765966A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010903662.5A CN113765966A (zh) 2020-09-01 2020-09-01 一种负载均衡方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010903662.5A CN113765966A (zh) 2020-09-01 2020-09-01 一种负载均衡方法和装置

Publications (1)

Publication Number Publication Date
CN113765966A true CN113765966A (zh) 2021-12-07

Family

ID=78785636

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010903662.5A Pending CN113765966A (zh) 2020-09-01 2020-09-01 一种负载均衡方法和装置

Country Status (1)

Country Link
CN (1) CN113765966A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114338691A (zh) * 2021-12-31 2022-04-12 唯品会(广州)软件有限公司 一种负载均衡管理的方法及装置
CN114979157A (zh) * 2022-05-17 2022-08-30 南昌智能新能源汽车研究院 基于some/ip协议的负载均衡方法、系统、存储介质及计算机

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005092862A (ja) * 2003-08-11 2005-04-07 Hitachi Ltd 負荷分散方法及びクライアント・サーバシステム
CN103957246A (zh) * 2014-04-22 2014-07-30 广州杰赛科技股份有限公司 基于租户感知的动态负载均衡方法及系统
US9116752B1 (en) * 2009-03-25 2015-08-25 8X8, Inc. Systems, methods, devices and arrangements for server load distribution
CN108874640A (zh) * 2018-05-07 2018-11-23 北京京东尚科信息技术有限公司 一种集群性能的评估方法和装置
CN110515731A (zh) * 2019-08-22 2019-11-29 北京浪潮数据技术有限公司 一种数据处理方法、装置及系统
CN110677274A (zh) * 2019-08-26 2020-01-10 国信电子票据平台信息服务有限公司 一种基于事件的云网络服务调度方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005092862A (ja) * 2003-08-11 2005-04-07 Hitachi Ltd 負荷分散方法及びクライアント・サーバシステム
US9116752B1 (en) * 2009-03-25 2015-08-25 8X8, Inc. Systems, methods, devices and arrangements for server load distribution
CN103957246A (zh) * 2014-04-22 2014-07-30 广州杰赛科技股份有限公司 基于租户感知的动态负载均衡方法及系统
CN108874640A (zh) * 2018-05-07 2018-11-23 北京京东尚科信息技术有限公司 一种集群性能的评估方法和装置
CN110515731A (zh) * 2019-08-22 2019-11-29 北京浪潮数据技术有限公司 一种数据处理方法、装置及系统
CN110677274A (zh) * 2019-08-26 2020-01-10 国信电子票据平台信息服务有限公司 一种基于事件的云网络服务调度方法及装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114338691A (zh) * 2021-12-31 2022-04-12 唯品会(广州)软件有限公司 一种负载均衡管理的方法及装置
CN114338691B (zh) * 2021-12-31 2023-05-23 唯品会(广州)软件有限公司 一种负载均衡管理的方法及装置
CN114979157A (zh) * 2022-05-17 2022-08-30 南昌智能新能源汽车研究院 基于some/ip协议的负载均衡方法、系统、存储介质及计算机
CN114979157B (zh) * 2022-05-17 2024-03-22 南昌智能新能源汽车研究院 基于some/ip协议的负载均衡方法、系统、存储介质及计算机

Similar Documents

Publication Publication Date Title
CN109218355B (zh) 负载均衡引擎,客户端,分布式计算系统以及负载均衡方法
US8001247B2 (en) System for trigger-based “gated” dynamic virtual and physical system provisioning
CN111131058B (zh) 访问量控制方法和装置
CN107341050B (zh) 基于动态线程池的服务处理方法和装置
US10771533B2 (en) Adaptive communication control device
CN111817974B (zh) 基于令牌桶的接口限流方法、装置、系统及可读存储介质
CN109936613B (zh) 应用于服务器的容灾方法和装置
CN111131486B (zh) 执行节点的负载调节方法、装置、服务器及存储介质
US20140280818A1 (en) Distributed data center technology
CN112445857A (zh) 一种基于数据库的资源配额管理方法和装置
CN113765966A (zh) 一种负载均衡方法和装置
CN112379982B (zh) 任务处理方法、装置、电子设备及计算机可读存储介质
CN110650209A (zh) 实现负载均衡的方法和装置
CN114035895A (zh) 一种基于虚拟服务计算能力的全局负载均衡方法和装置
CN111858040A (zh) 一种资源调度方法和装置
US10951707B2 (en) Selection device, device selection method, and program
CN107045452B (zh) 虚拟机调度方法和装置
CN113765964A (zh) 一种分布式系统服务分发的方法和装置
CN110247847B (zh) 节点之间回源选路的方法和装置
CN115858147A (zh) 成本建模方法和装置
CN115567602A (zh) Cdn节点回源方法、设备及计算机可读存储介质
CN115190180A (zh) 在网络资源请求骤增时的网络资源请求调度方法和装置
KR101719724B1 (ko) 자원 제공 시스템 및 방법, 그리고 이의 자원 사용료 결정 방법
CN114006871A (zh) 流量控制方法、装置、容器和存储介质
CN113918282A (zh) 一种数据库访问方法、装置、电子设备及计算机可读介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination