首页> 中国专利> 一种私有云基于动态反馈的局部一致性哈希负载均衡方法

一种私有云基于动态反馈的局部一致性哈希负载均衡方法

摘要

本发明公开一种私有云基于动态反馈的局部一致性哈希负载均衡方法。该方法通过私有云中的服务发现模块和健康检查模块获取服务提供端及其实时负载,计算出其能够继续提供服务的权重,并利用带权重的局部一致性哈希算法,计算出哈希路由表,为客户端的请求提供服务。本发明能够实时动态地更新服务提供端的权重,提升负载均衡服务的性能,并且平衡每个服务提供端的负载情况。

著录项

  • 公开/公告号CN106850852A

    专利类型发明专利

  • 公开/公告日2017-06-13

    原文格式PDF

  • 申请/专利权人 南京大学;

    申请/专利号CN201710180892.1

  • 发明设计人 曹春;余萍;袁忠良;

    申请日2017-03-20

  • 分类号H04L29/08(20060101);

  • 代理机构32207 南京知识律师事务所;

  • 代理人张苏沛

  • 地址 210046 江苏省南京市栖霞区仙林大道163号

  • 入库时间 2023-06-19 02:35:50

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-09-20

    授权

    授权

  • 2017-07-07

    实质审查的生效 IPC(主分类):H04L29/08 申请日:20170320

    实质审查的生效

  • 2017-06-13

    公开

    公开

说明书

技术领域

本发明涉及通信技术领域,具体来说,涉及一种基于动态反馈的局部一致性哈希负载均衡方法。

背景技术

随着互联网的发展,云计算的使用范围越来越广泛,云计算是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。

在一般的支持云计算的云平台中,用户可以通过控制台创建自己的云环境,包括网络、存储、计算等各种各样的特定需求。大部分的云平台还需要支持某些特定的环境,如负载均衡服务、虚拟专用网络等。

在上述的各种技术中,负载均衡服务是各类云计算平台不可或缺的部分。负载均衡服务的主要作用在于提供一种廉价有效透明的方法扩展网络设置和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。

但是,在常规的负载均衡技术中,往往存在着以下几点不足。首先,现有的负载均衡算法中关于权重的部分,都是静态配置的,不能根据服务提供端现有的负载,及时更新提供服务的权重,导致可能因为某些原因实时负载率很高的服务提供端,依旧因为初始权重过高而接收到大部分的客户端请求。其次,现有的负载均衡算法,一般还是采用一致性哈希算法,其均衡性并不足够,其时间复杂度也较高,对其性能有一定的影响。

发明内容

针对现有技术中存在的不足,本发明公开了一种私有云基于动态反馈的局部一致性哈希负载均衡算法,其特征在于,包括:

通过服务发现模块,实时获得对应服务所有的可以提供服务的服务提供端;

通过健康检查模块,实时获取每个服务对应的服务提供端的资源总量和实时负载;

根据每个服务提供端的资源总量和实时负载计算出当前服务的服务提供端的实时负载率;

通过对服务提供端的实时负载率的进一步计算,得出每个服务提供端能够提供的服务权重;

根据局部一致性哈希算法和服务提供端能够提供服务的权重,计算出哈希路由表;

服务请求连接达到,根据服务请求客户端的请求连接数据,计算出唯一的哈希值;

查找路由表,根据路由表找到对应的服务提供端;

当服务提供端的数量增减或者能够提供的负载变化时,重复该过程。

上述的负载均衡方法,其特征在于,进一步包括:

通过服务发现模块,可以对对应的服务进行监控,获得提供该对应服务的所有服务提供端。

通过私有云中的健康检查模块,可以对每个服务提供端提供实时监控,包括处理器、内存和磁盘,从多个方面监控服务提供端所能提供的实时负载。

根据每个服务提供端的资源总量和实时负载情况,计算出当前服务端的实时负载率。定义Cp为服务提供端的处理器的实时负载,Cm为服务提供端内存的实时负载,Cd为服务提供端磁盘的实时负载,Np为服务提供端的处理器的总资源量,Nm为服务提供端的内存总资源量,Nd为服务提供端的磁盘总资源量。则实时负载率

根据对服务提供端的实时负载率的进一步计算,每个服务提供端能提供的权重为W=1-R

所述局部一致性哈希算法,包括:

横轴使用每个服务提供端,纵轴使用远大于服务提供端个数的数字n,采用经典的洗牌算法,生成一张随机全排列的表格。

带权重的局部一致性哈希算法如图2;

根据服务请求计算出哈希值,从哈希路由表可以直接得到对应的服务提供端。

当服务提供端的数量增减或者负载发生变化时,重复上述步骤,重新计算哈希路由表,其大部分路由还是正确的,极大的减少了回源数量。

有益效果:

借助于本发明的上述技术方案,通过动态实时获取服务提供端的负载,进一步计算其提供服务的权重,采用带权重的局部一致性哈希算法,得到路由表,为客户端的请求提供服务,实现了动态反馈服务器负载,及时修改负载均衡器的负载均衡策略。同时,新的带权重的负载均衡算法,保证了服务提供端在权重的基础上,实现了足够的均衡,以及保证在服务提供端负载和数量发生变化的时候,回源率维持在较低的水准。

附图说明

图1为本发明实施例的系统结构图。

图2为本发明实施例的带权重的一致性哈希算法图。

图3为本发明实施例的服务端信息列表。

图4为本发明实施例的服务端全排列表。

图5为本发明实施例的服务端哈希路由表。

图6为本发明实施例的新一轮服务端信息表。

图7为本发明实施例的新一轮服务端哈希路由表。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。

根据本发明的实施例,提供了一种私有云基于动态反馈的局部一致性哈希负载均衡方法。

如图1所示,根据本发明实施例的负载均衡方法包括:

通过服务发现模块,实时获得对应服务所有的可以提供服务的服务提供端;

通过私有云的健康检查模块,获取服务提供端的列表和每个服务提供端的处理器、内存、磁盘的使用情况;

根据处理器、内存和磁盘的使用情况,以及实时负载率计算公式计算出每个服务提供端的实时负载率;

根据服务提供端的权重计算公式,计算出每个服务提供端在新一轮的服务提供中所能提供的权重,如图3所示列表;

图1中的配置文件指各种负载均衡器的配置文件,比如nginx的配置文件;

根据上一轮计算的服务提供端的提供权重,修改配置文件的初始权重,并重新加载,使其实时权重重新生效;

根据服务提供端的个数和名字,利用如下的计算公式,计算出一张随机全排列的表格,如图4;

offset=h(name[i])mod M

skip=h(name[i])mod(M-1)+1

permutation[i][j]=(offset+j*skip)mod M

其中,M为哈希值的总数;

根据带权重的局部一致性哈希算法,可以进一步得到哈希路由表,如图5;

可以看到,在新的哈希路由表中,其哈希值对应的服务提供端的个数,和上文计算的权重的比例基本相同。

对于负载均衡器的总体流程框架我们并不作修改,本发明所做的修改主要集中在对于哈希路由表的计算方式和服务提供端的服务提供权重的动态修改,使其更加均衡和满足动态适配的特点。

假设这个时候,有一个客户端请求到达,把整个客户端请求做一次哈希,得到的哈希值假如为3,那么查找路由表,对应的服务提供端为B2,就把B2的ip地址返还给客户端;

对于本发明实施例的系统结构图如图1所示,健康检查模块每隔一个时间周期会去监控检查服务提供端的各项数据,获得服务提供端的包括处理器、内存、磁盘等各方面的数据,计算好负载率、服务提供权重,然后更新负载均衡器配置文件里面的权重数值,负载均衡器的核心计算部分会利用带权重的负载均衡算法,计算出一张哈希路由表,等待客户端请求的到来。当客户端请求到来时,计算哈希值,并通过哈希路由表,找到对应的服务提供端。当下一个时间周期到来的时候,继续重复这一过程。

假设在新的一轮时间周期内,服务提供端的处理器、内存、磁盘的使用情况如图6;

可以看到,服务提供端B2宕机,只有B0和B1,同时,他们的负载也发生了变化;

通过随机全排列表,我们进一步可以得到新的哈希路由表,如图7;

从新的表格中,我们可以看到,新的服务提供端在哈希表中所占的比例和他们能够提供的权重基本相同,同时,原本映射到B0和B1服务提供端的哈希值大部分依旧落在B0和B1上,保证了一定的回源率;

当再次经过一个时间周期后,又开始了新一轮的循环;

综上所述,借助于本发明的上述技术方案,通过动态实时获取服务提供端的负载,进一步计算其提供服务的权重,采用带权重的局部一致性哈希算法,得到路由表,为客户端的请求提供服务,实现了动态反馈服务器负载,及时修改负载均衡器的负载均衡策略。同时,新的带权重的负载均衡算法,保证了服务提供端在权重的基础上,实现了足够的均衡,以及保证在服务提供端负载和数量发生变化的时候,回源率维持在较低的水准。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号