System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及服务器负载均衡,尤其涉及一种服务器负载均衡方法及系统、网关。
技术介绍
1、随着互联网的发展,可以通过服务器集群响应来自终端设备的访问请求,以为终端设备提供服务。该服务器集群包括多台处理服务器。为了确保服务器集群的响应速度,通常会将用于访问服务器集群的访问请求,按照某种负载均衡算法分配给该多台处理服务器中的一台服务器。
2、一致性哈希算法是其中的一种负载均衡算法,一致性哈希算法可以计算来自终端设备的访问请求对应的哈希值,再基于该哈希值从多台服务器中确定用于响应该访问请求的目标处理服务器,继而将该访问请求分配至该目标处理服务器。
3、但是,目前基于一致性哈希算法进行负载均衡的效果较差。
技术实现思路
1、本申请旨在至少在一定程度上解决基于一致性哈希算法对服务器集群进行负载均衡的效果较差的问题。为此,本申请提供了一种服务器的负载均衡方法及网关、系统,所述技术方案如下:
2、一方面,提供了一种服务器的负载均衡方法,所述方法包括:
3、确定多个服务器中各个服务器的负载,每个所述服务器均具有多个虚拟节点,每个所述服务器与所述服务器的多个虚拟节点均分布在哈希环上;
4、确定各个所述服务器的负载相对于平均负载的负载偏离值,所述平均负载为所述多个服务器的负载的平均值;
5、对于每个所述服务器,若所述服务器的负载偏离值大于偏离值阈值,则减少所述服务器的虚拟节点的数量,并更新所述哈希环;若所述服务器的负载偏离值小于所述偏
6、可选的,调整后的所述服务器的虚拟节点的数量t1满足:
7、
8、其中,t为所述服务器的虚拟节点的数量,g为所述服务器的负载偏离值,k为负载偏离系数,表示向下取整,||表示取绝对值。
9、可选的,所述确定多个服务器中各个服务器的负载,包括:
10、对于每个所述服务器,每隔第一周期,确定所述服务器在所述第一周期内的负载。
11、可选的,所述确定各个所述服务器的负载相对于平均负载的负载偏离值,包括:
12、将所述多个服务器在所述第一周期内的负载的均值,确定为所述多个服务器在所述第一周期内的平均负载;
13、对于每个所述服务器,基于所述平均负载,以及所述服务器在所述第一周期内的负载,确定所述服务器在所述第一周期内的负载偏离值。
14、可选的,每隔第一周期,确定所述服务器在所述第一周期内的负载,包括:
15、在所述第一周期内,每隔第二周期,确定所述服务器在所述第二周期内的负载,所述第二周期小于所述第一周期;
16、将所述服务器在多个所述第二周期内的负载的平均值,确定为所述服务器在所述第一周期内的负载。
17、可选的,所述确定多个服务器中各个服务器的负载,包括:
18、对于每个所述服务器,获取所述服务器的多个运行参数,所述多个运行参数包括:每秒请求数、每秒处理事务数、响应时间、内存使用率和处理器使用率中的至少两个;
19、基于所述多个运行参数,确定所述服务器的负载,所述负载与所述多个运行参数正相关。
20、可选的,每个所述服务器的虚拟节点的变化量与所述服务器的负载偏离值的绝对值正相关;
21、其中,所述服务器的虚拟节点的变化量为所述服务器的虚拟节点的减少量或增加量。
22、可选的,在调整所述服务器的虚拟节点的数量之后,所述方法还包括:
23、对于每个所述服务器,若确定所述服务器的负载偏离值的绝对值大于偏离值阈值,则发出告警信号。
24、另一方面,提供了一种网关,所述网关包括:控制器;所述控制器用于:
25、确定多个服务器中各个服务器的负载,每个所述服务器均具有多个虚拟节点,每个所述服务器与所述服务器的多个虚拟节点均分布在哈希环上;
26、确定各个所述服务器的负载相对于平均负载的负载偏离值,所述平均负载为所述多个服务器的负载的平均值;
27、对于每个所述服务器,若所述服务器的负载偏离值大于偏离值阈值,则减少所述服务器的虚拟节点的数量,并更新所述哈希环;若所述服务器的负载偏离值小于所述偏离值阈值,则增加所述虚拟节点的数量,并更新所述哈希环。
28、另一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如上述方面所述的方法。
29、又一方面,提供了一种服务器的负载均衡系统,所述系统包括:
30、多个服务器,以及如上述方面所述的网关。
31、本申请提供的技术方案带来的有益效果至少包括:
32、本申请提供的一种服务器的负载均衡方法及网关、系统,网关能够确定多个服务器中各个服务器的负载,该每个服务器及其虚拟节点均分布在哈希环上。然后,网关若确定该负载相对于平均负载的负载偏离值大于偏离值阈值,则减少该服务器的虚拟节点的数量,以及若确定该负载偏离值小于该偏离值阈值,则增加该服务器的虚拟节点的数量,并更新哈希环,以均衡服务器的负载。由此可见,本申请提供的方法在通过哈希环进行负载均衡的基础上,还能够通过调整服务器的虚拟节点的数量,来均衡多个服务器的负载,因此可以确保多个服务器的负载均衡的效果较好。
33、本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
本文档来自技高网...【技术保护点】
1.一种服务器的负载均衡方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,调整后的所述服务器的虚拟节点的数量T1满足:
3.根据权利要求1所述的方法,其特征在于,所述确定多个服务器中各个服务器的负载,包括:
4.根据权利要求3所述的方法,其特征在于,所述确定各个所述服务器的负载相对于平均负载的负载偏离值,包括:
5.根据权利要求3所述的方法,其特征在于,每隔第一周期,确定所述服务器在所述第一周期内的负载,包括:
6.根据权利要求1至5任一所述的方法,其特征在于,所述确定多个服务器中各个服务器的负载,包括:
7.根据权利要求1至3任一所述的方法,其特征在于,
8.根据权利要求1至3任一所述的方法,其特征在于,在调整所述服务器的虚拟节点的数量之后,所述方法还包括:
9.一种网关,其特征在于,所述网关包括:控制器;所述控制器用于:
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如权利要求1-8中任一项所
11.一种服务器的负载均衡系统,其特征在于,所述系统包括:多个服务器,以及如权利要求9所述的网关。
...【技术特征摘要】
1.一种服务器的负载均衡方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,调整后的所述服务器的虚拟节点的数量t1满足:
3.根据权利要求1所述的方法,其特征在于,所述确定多个服务器中各个服务器的负载,包括:
4.根据权利要求3所述的方法,其特征在于,所述确定各个所述服务器的负载相对于平均负载的负载偏离值,包括:
5.根据权利要求3所述的方法,其特征在于,每隔第一周期,确定所述服务器在所述第一周期内的负载,包括:
6.根据权利要求1至5任一所述的方法,其特征在于,所述确...
【专利技术属性】
技术研发人员:程廷华,陈列翔,黎石聪,李金鑫,
申请(专利权)人:广东睿住智能科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。