一种实现智能负载均衡的方法与流程

文档序号:32744537发布日期:2022-12-30 21:22阅读:71来源:国知局
一种实现智能负载均衡的方法与流程

1.本发明属于云服务技术领域,尤其是涉及一种实现智能负载均衡的方法。


背景技术:

2.负载均衡(server load balancer,简称slb)是云厂商iaas层面的一款基础云服务,是保障应用高可用的基本要素。通过对多台云服务器进行均衡的流量分发调度,消除单点故障提升应用系统的可靠性。
3.目前在公有云计算领域,各家云厂商(如亚马逊云、微软云、阿里云、腾讯云、华为云等等)的负载均衡方式(流量调度算法、健康检查)基本趋同,下面针对这两大模块逐一说明。
4.流量调度算法大致有轮询、最少连接、一致性哈希三种模式:
5.1.轮询/加权轮询:轮询算法按顺序依次将请求分发给不同的服务器;加权轮询算法支持根据后端服务器的权重高低,按顺序依次将请求分发给不同的服务器,权重大的后端服务器被分配的概率高。
6.备注:后端服务器的权重均为用户基于针对各后端服务器的性能预估判断,手工静态配置。
7.2.最少连接/加权最少连接:最少连接是通过当前活跃的连接数来估计服务器负载情况的一种调度算法。加权最少连接就是在最少连接数的基础上,根据服务器的不同处理能力,给每个服务器分配不同的权重,权重大的后端服务器被分配的概览高。
8.备注:后端服务器的权重均为用户基于针对各后端服务器的性能预估判断,手工静态配置。
9.3.一致性哈希:较普遍的为源ip哈希算法,部分云厂商(如微软云)支持五元组哈希算法;将请求的源ip地址进行一致性hash运算,得到一个具体的数值,同时对后端服务器进行编号,按照运算结果将请求分发到对应编号的服务器上。
10.健康检查工作逻辑为负载均衡器定期向后端服务器发送请求以测试其运行状态,通过健康检查来判断后端服务器是否可用。负载均衡器如果判断后端服务器健康检查异常,就不会将流量分发到异常后端服务器,而是分发到健康检查正常的后端服务器;当异常的后端服务器恢复正常运行后,负载均衡器会将其自动恢复到负载均衡服务中,承载业务流量。依据后端服务的不同,健康检查包含tcp、udp、http三种方式。
11.综上所述,我们可以发现目前业界slb服务存在若干严重问题,归纳如下:
12.1.调度算法指标单一,无法综合感知后端服务能力;
13.2.加权调度算法中的权重因素属于人工手工配置的固定参数,不能动态反应后端服务的真实能力;
14.3.健康检查机制存在严重缺陷,只有后端服务可用和不可用两种状态,而从未考虑到后端服务质量的优劣;汇总分析运维经验,可以发现后端服务在不可用之前通常是有一个服务质量持续劣化过程的,而当前业界各厂商slb服务的健康机制均未关注涉及。


技术实现要素:

15.有鉴于此,为解决上述问题,本发明提出一种实现智能负载均衡的方法。
16.为达到上述目的,本发明的技术方案是这样实现的:
17.一方面,本发明提供了一种实现智能负载均衡的方法,包括:
18.基于健康质量评估策略对后端各服务器进行实时健康质量评估;
19.基于实时健康质量评估结果按照优劣等级将后端各服务器分为多组,并对各组赋予不同的权重值;
20.基于对后台各服务器的实时健康质量评估结果和各组不同的权重值进行流量调度。
21.进一步的,所述健康质量评估策略,包括:
22.实时获取后端各服务器的维度指标参数;
23.结合后端服务器cpu、内存绝对值;
24.各项加权综合评估出后端各服务器的实时健康质量分值。
25.进一步的,维度指标参数包括:cpu使用率、内存使用率、网络流入速率、网络流出速率、磁盘读速率、磁盘写速率。
26.进一步的,基于实时健康质量评估结果按照优劣等级将后端各服务器分为多组,并对各组赋予不同的权重值,包括:
27.按照优劣等级将后端各服务器分为两组以上;
28.权重值按照从优到劣的顺序降速分配。
29.进一步的,流量调度的方法包括:
30.首先按照分组权重值将访问流量大概率定位到权重值高的分组;
31.其次在分组内再按照各服务器的实时健康质量评估结果降序选择进行流量调度。
32.第二方面,本发明提供了一种电子设备/服务器,包括处理器,以及与处理器通信连接,且用于存储所述处理器可执行指令的存储器,所述处理器在执行所述指令时,实现上述第一方面所述的实现智能负载均衡的方法。
33.第三方面,本发明提供了一种可读取存储介质,用于存储计算机程序,所述计算机程序在被处理器执行时,实现上述第一方面所述的实现智能负载均衡的方法。
34.相对于现有技术,本发明所述的实现智能负载均衡的方法具有以下优势:
35.(1)本发明所述的实现智能负载均衡的方法,优化当前健康检查维度单一的问题(仅检查后端服务的正常和异常两种状态),通过引入后端服务的健康质量,可以将正常状态的后端服务能力进一步量化,还可以及时识别跟踪健康质量持续劣化的后端服务并自动或手动采取措施预防。
36.(2)本发明所述的实现智能负载均衡的方法,优化当前静态加权的问题,可以依据后端服务的健康质量实时动态调整加权,实时动态选择更健康的后端服务来承载更多的流量访问,即将访问流量调度到具有更优性能处理能力的后端服务,从而进一步提升系统的可用性。
附图说明
37.构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实
施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
38.图1为本发明所述的实现智能负载均衡的方法的架构图。
具体实施方式
39.需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
40.下面将参考附图并结合实施例来详细说明本发明。
41.本实施例提供了一种实现智能负载均衡的方法,改进目前业界slb云服务,需要实现以下功能:
42.功能1:实时动态检测后端服务器健康质量
43.通过动态检查各后端服务器的cpu使用率、内存使用率、网络流入速率、网络流出速率、磁盘读速率、磁盘写速率各维度指标参数,结合后端服务器cpu、内存绝对值,各项加权综合评估出各后端服务的实时健康质量分值。
44.功能2:实时动态加权
45.将slb的后端服务组逻辑上再分为多组,以4组为例(按照优、良、中、差分级),依据功能1中的后端服务质量分值,将各后端服务动态加入各自健康质量等级对应的分组;其中,各分组自动分配不同的权重值,权重值从【优组】到【差组】依次降序分配,可保证流量调度到质量等级更高组的概率更大。
46.功能3:多维度流量调度算法
47.依据功能1中的健康质量值和功能2中的分组加权值,系统已通过多维度指标获取所有后端服务的实时质量,再结合应用需求选择加权轮询或加权最少连接调度算法,算法首先按照分组加权将访问流量大概率定位到质量等级更高的组,其次在组内再按照各后端服务的健康质量降序选择进行流量调度。
48.具体实现方法如下:
49.参照图1,业务实现流程描述如下:
50.1.针对各后端服务器的cpu使用率(或剩余率)、内存使用率(或剩余率)、网络流入速率、网络流出速率、磁盘读速率、磁盘写速率各维度指标参数进行实时周期检查,结合后端服务器cpu、内存绝对值,通过健康质量算法加权综合评估出各后端服务器的实时健康质量分值(1-100取值,数值越大代表健康质量越优);
51.step1:实时周期检查各维度指标参数,动态维护数据库表数据(参考表1);
52.表1-健康质量动态指标db表
[0053][0054]
step2:依据各服务器单维度的平均值,动态计算各参数的权重值(weight value)
[0055]
awv=avg(a1,a2

,an)/ax
[0056]
bwv=avg(b1,b2

,bn)/bx
[0057]
cwv=avg(c1,c2

,cn)/cx
[0058]
dwv=avg(d1,d2

,dn)/dx
[0059]
ewv=avg(e1,e2

,en)/ex
[0060]
fwv=avg(f1,f2

,fn)/fx
[0061]
step3:自动动态计算各后端服务器的健康质量(health quality value)
[0062]
hqvx=百分制换算(awv*xca+bwv*xma+cwv+dwv+ewv+fwv),其中aav、bav分别表示cpu和内存的绝对值(absolute value)
[0063]
step4(可选):保留支持用户基于场景考虑对各参数权重手工干预的能力。
[0064]
2、根据上述健康质量分值将slb的后端服务组再分为4组(按照优、良、中、差分级),将各后端服务动态加入各自健康质量等级对应的分组(对应图1的优组a、良组b、中组c、差组d);其中,各分组自动分配不同的权重值,权重值从【优组】到【差组】依次降序分配,可保证流量调度到质量等级更高组的概率更大;依据表1联动动态维护数据库表数据(参考表2);
[0065]
表2

后端服务健康分组状态db表
[0066]
健康分组组权重值组成员优组aw1ecs-a1,ecs-ax,ecs-an良组bw2ecs-b1,ecs-bx,ecs-bn中组cw3ecs-c1,ecs-cx,ecs-cn差组dw4ecs-d1,ecs-dx,ecs-dn
[0067]
备注:上表各组中的组成员按照健康质量hqv分值降序排列,并动态更新
[0068]
3、根据应用需求选择加权调度算法(比如加权轮询或加权最少连接),按照表2中的分组加权值,首先按照表2中的分组加权值将访问流量大概率定位到质量等级更高的组,其次在组内再按照各后端服务的健康质量hqv分值降序选择,最终实现基于后端服务质量的负载均衡流量调度能力。
[0069]
本实施例提供了一种电子设备/服务器,包括处理器,以及与处理器通信连接,且用于存储所述处理器可执行指令的存储器,所述处理器在执行所述指令时,实现上述实施例所述的实现智能负载均衡的方法。
[0070]
本实施例提供了一种可读取存储介质,用于存储计算机程序,所述计算机程序在被处理器执行时,实现上述实施例所述的实现智能负载均衡的方法。
[0071]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0072]
在本技术所提供的几个实施例中,应该理解到,所揭露的方法和系统,可以通过其它的方式实现。例如,以上所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。上述单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
[0073]
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。
[0074]
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1