CN110830562B - 一种基于虚拟节点的有限负载一致性哈希负载均衡策略 - Google Patents
一种基于虚拟节点的有限负载一致性哈希负载均衡策略 Download PDFInfo
- Publication number
- CN110830562B CN110830562B CN201911044751.2A CN201911044751A CN110830562B CN 110830562 B CN110830562 B CN 110830562B CN 201911044751 A CN201911044751 A CN 201911044751A CN 110830562 B CN110830562 B CN 110830562B
- Authority
- CN
- China
- Prior art keywords
- node
- load
- virtual
- follows
- cache
- 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.)
- Active
Links
- 238000004364 calculation method Methods 0.000 claims description 28
- 238000000034 method Methods 0.000 claims description 25
- 238000013507 mapping Methods 0.000 claims description 22
- 238000013139 quantization Methods 0.000 claims description 19
- 230000008569 process Effects 0.000 claims description 13
- 239000011159 matrix material Substances 0.000 claims description 11
- 230000001419 dependent effect Effects 0.000 claims description 9
- 230000006870 function Effects 0.000 claims description 8
- 239000006185 dispersion Substances 0.000 claims description 6
- 238000012417 linear regression Methods 0.000 claims description 6
- 238000011156 evaluation Methods 0.000 claims description 4
- 230000009191 jumping Effects 0.000 claims description 4
- 235000006629 Prosopis spicigera Nutrition 0.000 claims description 3
- 240000000037 Prosopis spicigera Species 0.000 claims description 3
- 230000004044 response Effects 0.000 abstract description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000007547 defect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- NAWXUBYGYWOOIX-SFHVURJKSA-N (2s)-2-[[4-[2-(2,4-diaminoquinazolin-6-yl)ethyl]benzoyl]amino]-4-methylidenepentanedioic acid Chemical compound C1=CC2=NC(N)=NC(N)=C2C=C1CCC1=CC=C(C(=O)N[C@@H](CC(=C)C(O)=O)C(O)=O)C=C1 NAWXUBYGYWOOIX-SFHVURJKSA-N 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 239000011541 reaction mixture Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1023—Server selection for load balancing based on a hash applied to IP addresses or costs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5682—Policies or rules for updating, deleting or replacing the stored data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明属于网络集群与网络化控制技术领域,涉及一种基于虚拟节点的有限负载一致性哈希负载均衡策略,将缓存节点内存大小、CPU内核总数及磁盘大小作为独立信息数据波动赋权法的输入指标,计算各缓存节点性能量化值及性能量化值占比,根据设定的虚拟节点总数得到各缓存节点的虚拟节点数,将一致性哈希环均分为m段弧,利用Random函数为每个缓存节点生成对应数目的虚拟节点,按比例映射到每段弧上,负载均衡器更新集群缓存代理的负载量及各缓存节点的负载上限,在一致性哈希环上选择虚拟节点,利用拥有该虚拟节点的缓存节点进行服务。本发明解决了原策略负载分配不均和不支持异构集群缓存代理的问题,有效减少骨干网带宽占用率和集群缓存代理响应时间。
Description
技术领域
本发明涉及网络集群与网络化控制技术领域,尤其涉及一种基于虚拟节点的有限负载一致性哈希负载均衡策略。
背景技术
伴随着互联网飞速发展的势头,网络应用已涉及人们日常生活的方方面面,网络流量呈指数级增长,传统的单体Web服务器架构难以应付当前多网络环境下的高并发请求,服务器负载压力持续增加。与此同时,随着JavaScript、CSS、JSON以及其他多媒体技术的发展,如今的互联网数据传输类型已不再是简单的文本数据,图片和视频数据正处于快速增长阶段,其所占网络总流量百分比逐年快速上升,导致了骨干网带宽紧张和用户访问时延增加。
集群缓存代理是指实现缓存机制的一组代理服务器,通过在骨干网边缘部署缓存节点,为用户提供服务,其目的是节约骨干网带宽资源并降低用户访问时延。目前,针对于集群缓存代理的研究主要停留在缓存预取策略和缓存替换策略上,其目的以节约内存空间、提高缓存命中率为主,而关于集群缓存代理负载均衡相关的研究较少。负载均衡就是指将负载(工作任务)进行平衡、分摊到多个操作单元上进行运行,面对日益膨胀的网络工作,负载均衡性决定了集群缓存代理性能的优劣。如果负载均衡性较差,可能导致缓存节点利用率低,影响用户体验。因此,目前亟需一种有状态性负载均衡策略,在保证集群缓存代理负载均衡性的同时,维持其较高的缓存命中率,以节约骨干网带宽并加快集群缓存代理响应速度。
发明内容
有鉴于此,本发明的目的是提供一种基于虚拟节点的有限负载一致性哈希负载均衡策略,其通过在有限负载一致性哈希策略中引入虚拟节点,解决其负载均衡性受节点映射分散性影响的不足,并使其同时支持同构和异构集群缓存代理。
本发明通过以下技术手段解决上述技术问题:
一种基于虚拟节点的有限负载一致性哈希负载均衡策略,所述策略包括如下步骤:
S1.将缓存节点内存大小、处理器内核总数及磁盘大小作为独立信息数据波动赋权法的输入指标,计算各缓存节点性能量化值及性能量化值占比;
S2.设置虚拟节点总数为缓存节点个数的200-300倍,根据虚拟节点总数和步骤S1中缓存节点性能量化值占比,计算各缓存节点应分得的虚拟节点数;
S3.利用Random函数为每个缓存节点生成对应数目的虚拟节点;
S4.计算各缓存节点拥有虚拟节点数的最大公约数m,将一致性哈希环均分为m段弧。通过MD5函数,将各缓存节点拥有的虚拟节点均匀映射到一致性哈希环的各段弧上;
S5.请求到达负载均衡器时,负载均衡器更新集群缓存代理负载量和各缓存节点负载上限值;
S6.将请求的URL作为S4中MD5函数的输入,利用有限负载一致性哈希的请求分配策略在一致性哈希环上选择虚拟节点,并利用拥有该虚拟节点的缓存节点进行服务。
进一步,步骤S1中,利用独立信息数据波动赋权法计算各缓存节点性能量化值及性能量化值占比的具体过程为:
S11.计算指标j的离差系数Vj,计算公式如下:
S13.归一化Vj得到Vj′,归一化Dj得到Dj′,计算公式如下:
其中,max(Vj)表示各缓存节点指标j的最大离差系数,max(Dj)表示各缓存节点指标j的最大独立信息程度;
S14:计算指标j的纯量信息Ij,计算公式如下:
Ij=Vj′×Dj′
S15:计算指标j的权重值Wj,计算公式如下:
其中,i表示指标个数。
S16.计算指标j的归一化值Qj,计算公式如下:
其中,Tj表示指标j包含的样本集,Max(Tj)表示指标j的最大值。
S17:将Qj与该指标权重值Wj线性加权,得到缓存节点n的性能量化值Fn,计算公式如下:
其中,n∈[1,s],s表示缓存节点数目。
S18:计算缓存节点n的性能量化值占比θn,计算公式如下:
其中,j∈[1,3]。
将指标j作为因变量,其余指标作为自变量,可以得到多元线性回归模型如下所示:
其中,β0~3表示回归系数,ε是均值为0、方差为σ2(σ>0)的随机变量。
求得回归系数后,带入自变量可以得到自变量与因变量的线性关系如下式所示:
可得指标j的复相关系数Rj和独立信息程度Dj如下所示:
进一步,步骤S2中各个缓存节点分得的虚拟节点数目计算如下式所示:
Nn=Nt×θn
其中,Nt表示虚拟节点总数,设置为缓存节点个数s的200-300倍,Nn表示缓存节点n拥有的虚拟节点数。
进一步,所述S3步骤具体如下:
利用各缓存节点拥有的虚拟节点数构建矩阵N,如下式所示:
N=(N1 N2 … Nn … Ns-1 Ns)
利用Random函数并参照矩阵N中各元素值,为每个缓存节点随机生成对应数目的唯一虚拟节点主机号(IP:Port),如缓存节点1则需生成N1个主机号各不相同的虚拟节点,以此类推。
进一步,步骤S4中利用MD5函数将各缓存节点拥有的虚拟节点均匀映射到一致性哈希环各段弧上的过程具体为:
S41.计算矩阵N各元素的最大公约数m,将一致性哈希环均分为m段弧;
S42.计算每个缓存节点在每段弧上需要分配的虚拟节点数量,构成集合C,如下所示:
S43.计算一致性哈希环上每段弧的长度davg,计算公式如下:
其中,Hmax表示哈希环的最大值。
S44.定位当前弧区间编号k,初始值k=1;
S45.当前弧区间编号k是否大于m,如果大于m,则结束执行,虚拟节点映射完成;否则执行S46。
S46.计算当前弧区间起始坐标Bs,计算公式如下:
S47.循环各缓存节点,参照C中各元素值,为每个缓存节点随机取出对应数量的虚拟节点。将各虚拟节点主机号作为MD5函数输入,得到各虚拟节点哈希值,计算公式如下:
Hv=MD5(Sv)
其中,Sv表示第v个虚拟节点的主机号,Hv表示第v个虚拟节点的哈希值,v∈[1,Nt];
S48.将各虚拟节点映射到当前弧区间内,计算公式如下:
其中,Bc(v)表示第v个虚拟节点在当前弧上的位置。如果Bc(v)在当前弧上已被其他虚拟节点占用,则重新生成Sv后,执行S47;
S49.递增当前弧区间编号k,跳转至步骤S44。
进一步,步骤S5中各缓存节点负载上限计算过程具体为:
S51.新的请求到达负载均衡器后,首先计算集群缓存代理的总负载量Lt,计算公式如下:
其中,Ln表示当前时刻缓存节点n的负载量,Lnew表示当前时刻的新增负载量。
S52.计算集群缓存代理的平均负载Lavg,计算公式如下:
S53.计算集群缓存代理中各缓存节点的平均性能量化值Favg,计算公式如下:
S54.为每个缓存节点保留1.2倍的负载裕量,更新各缓存节点负载上限如下式所示:
其中,Lc(n)表示当前时刻缓存节点n的负载上限。
进一步,步骤S6中在一致性哈希环上选择虚拟节点过程具体为:
S61.将请求的URL作为S47中MD5函数的输入,得到请求的哈希值,计算公式如下:
Hr=MD5(Sr)
其中,Sr表示请求r的URL,Hr表示请求r的哈希值;
S62.将Hr映射到一致性哈希环上,以Hr的位置为起点,找出顺时针方向的首个虚拟节点Vf;
S63.搜索拥有虚拟节点Vf的缓存节点,如果该缓存节点当前负载已达到其负载上限,则用该虚拟节点Vf的值更新Hr的值,并跳转至S62;否则,选择该缓存节点提供服务,计算公式如下:
Hr=Val(Vf)
其中,Val(Vf)表示虚拟节点Vf的哈希值。
S64.如果遍历相邻两段弧上所有虚拟节点均未找到能够提供服务的缓存节点,则结束搜索,直接返回。
本发明提出的策略在有限负载一致性哈希策略基础上进行改进,引入虚拟节点,解决了原策略负载均衡性受节点映射分散性影响较大的不足,同时支持同构和异构集群缓存代理,为集群缓存代理负载均衡提供了新的思路和解决方案。该方法具有很强的通用性和适用性,能够显著提高集群缓存代理的负载均衡性,降低骨干网带宽和集群缓存代理响应时间,为用户提供更稳定的服务和更快速的响应。
附图说明
为了使本发明的目的、技术方案和有益效果更加清楚,本发明提供如下附图进行说明:
图1为本发明的一种基于虚拟节点的有限负载一致性哈希负载均衡策略的算法工作流程图;
图2为本发明中缓存节点性能量化阶段流程示意图;
图3为本发明中虚拟节点映射流程阶段示意图;
图4为本发明中虚拟节点在一致性哈希环上分布示意图;
图5为本发明请求分配阶段流程示意图。
具体实施方式
以下通过特定的具体实施例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容了解本发明的优点和功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
如图1所示,本发明的基于虚拟节点的有限负载一致性哈希负载均衡策略包括缓存节点性能量化阶段、虚拟节点映射阶段、请求分配阶段三个阶段,各阶段具体如下:
一、缓存节点性能量化阶段
考虑到各缓存节点间存在性能差异,本发明计算了各缓存节点的性能量化值及性能量化值占比,以同时支持同构和异构集群缓存代理。为了避免熵权法难以解耦指标间相关性问题,本发明首先综合考虑数据信息和数据信息独立程度,采用独立信息数据波动赋权法,将各缓存节点内存大小、处理器内核总数及硬盘大小作为评价指标,得到各节点性能量化值及性能量化值占比。
如图2所示,本发明中缓存节点性能量化流程具体如下:
S1.将各缓存节点内存大小、处理器内核总数及硬盘大小作为独立信息数据波动赋权法的三个指标,并计算各缓存节点性能量化值及性能量化值占比,如下:
设置s组观察值,每组观察值包含内存大小、处理器内核总数及硬盘大小3个指标,构造评价矩阵As×3如式(1)所示:
式(1)中,s表示缓存节点数量,χ1,1表示第一组的内存大小,χ1,2表示第一组的处理器内核总数,χ1,3表示第一组的硬盘大小;χ2,1表示第二组的内存大小,χ2,2表示第二组的处理器内核总数,χ2,3表示第二组的硬盘大小;以此类推,χs,1表示第s组的内存大小,χs,2表示第s组的处理器内核总数,χs,3表示第s组的硬盘大小。
式(2)中,j∈[1,3]。
将指标j作为因变量,其余指标作为自变量,可以得到多元线性回归模型如式(3)所示:
式(3)中,β0~3表示回归系数,ε是均值为0、方差为σ2(σ>0)的随机变量。
求得回归系数后,带入自变量可以得到自变量与因变量的线性关系如式(4)所示:
复相关系数R反应了一个变量与其他多个变量之间线性相关程度,定义指标j的复相关系数Rj如式(5)所示:
独立信息数据波动赋权法计算缓存节点性能量化值,以及性能量化值占比的具体步骤如下:
a.计算指标j的离差系数Vj,如式(7)所示:
c.归一化Vj得到Vj′,归一化Dj得到Dj′,如式(8)、式(9)所示:
式(8)、式(9)中,max(Vj)表示各缓存节点指标j的最大离差系数,max(Dj)表示各缓存节点指标j的最大独立信息程度。
d.计算指标j的纯量信息Ij,如式(10)所示:
Ij=Vj′×Dj′ (10)
e.计算指标j的权重值Wj,如式(11)所示:
式(11)中,i表示指标个数。
f.计算指标j的归一化值Qj,如式(12)所示:
式(12)中,Tj表示指标j包含的样本集,Max(Tj)表示指标j的最大值。
g.将Qj与该指标的权重值Wj线性加权,得到缓存节点n的性能量化值Fn如式(13)所示:
式(13)中,n∈[1,s],s表示缓存节点数目。
h.计算缓存节点n的性能量化值占比θn,如式(14)所示:
二、虚拟节点映射阶段
得到各缓存节点性能量化值Fn及性能量化值占比θn后,需要按比例为各缓存节点生成一定数量的虚拟节点。如图3所示,为了保证虚拟节点分布的随机性、缓存节点增加或删除后负载均衡的自恢复性、高缓存命中率以及缓存节点快速定位性,本发明虚拟节点映射过程分为如下步骤:
S2.设置虚拟节点总数Nt为缓存节点数的200-300倍,例如虚拟节点总数可以是缓存节点数的200倍,或者210倍,或者230倍,或者260倍、或者280倍,或者300倍。根据各缓存节点性能量化值占比,各缓存节点应分配的虚拟节点数如式(15)所示:
Nn=Nt×θn (15)
式(15)中,Nn表示缓存节点n拥有的虚拟节点数,n∈[1,s]。
矩阵N包含了各缓存节点拥有的虚拟节点数,如式(16)所示:
N=(N1 N2 … Nn … Ns-1 Ns) (16)
S3.利用Random函数并参照N中各元素值,为每个缓存节点随机生成对应数量的唯一虚拟节点主机号(IP:Port),如缓存节点1则需生成N1个主机号互不相同的虚拟节点,以此类推。
S4.利用MD5函数将各缓存节点拥有的虚拟节点均匀映射到一致性哈希环的各段弧上,其映射流程如下:
(a)计算矩阵N中各元素的最大公约数m,并将一致性哈希环均分为m段弧。
(b)计算每个缓存节点在每段弧上需要分配的虚拟节点数量并构成集合C,如式(17)所示:
(c)计算一致性哈希环上每段弧的长度davg,如式(18)所示:
式(18)中,Hmax表示哈希环的最大值。
(d)定位当前弧区间编号k,初始值k=1。
(e)比较当前弧区间编号k是否大于m,如果大于m,则结束执行,虚拟节点映射完成;否则,执行f。
(f)计算当前弧区间起始坐标Bs,如式(19)所示:
(g)循环各缓存节点,参照C中各元素值,为每个缓存节点随机取出对应数量的虚拟节点。将各虚拟节点主机号作为MD5函数输入,得到各虚拟节点哈希值,如式(20)所示:
Hv=MD5(Sv) (20)
式(20)中,Sv表示第v个虚拟节点的主机号,Hv表示第v个虚拟节点的哈希值,v∈[1,Nt];
(h)将各虚拟节点映射到当前弧区间内,如式(21)所示:
式(21)中,Bc(v)表示第v个虚拟节点在当前弧上的位置。如果Bc(v)在当前弧上已被其他虚拟节点占用,则重新生成Sv后,执行步骤(g)。
(i)递增当前弧区间编号k,跳转至步骤(d)。
虚拟节点在一致性哈希环上分布示意图如图4所示。图4中,Cache1、Cache2及Cache3分别拥有8个虚拟节点,一致性哈希环的各段弧上均匀映射了各缓存节点对应的虚拟节点,实现了一致性哈希环的细分。
三、请求分配阶段
当请求到达负载均衡器时,负载均衡器首先计算出各缓存节点的当前连接数,并将其作为该缓存节点的当前负载。然后,负载均衡器会计算当前时刻集群缓存代理的总负载和平均负载,以更新各缓存节点负载上限。最后,请求将按照有限负载一致性哈希策略的请求转发规则选择虚拟节点以及拥有该虚拟节点的缓存节点,请求分配流程示意图如图5所示。
本发明请求分配分为如下步骤:
S5.当请求到达负载均衡器时,首先更新集群缓存代理中各缓存节点的负载上限,各缓存节点负载上限更新步骤如下所示:
(1)新的请求到达负载均衡器后,计算集群缓存代理的当前总负载量Lt,如式(22)所示:
式(22)中,Ln表示当前时刻缓存节点n的负载量,Lnew表示当前时刻的新增负载量。
(2)计算集群缓存代理的平均负载Lavg,如式(23)所示:
(3)计算集群缓存代理中各缓存节点的平均性能量化值Favg,如式(24)所示:
(4)为每个缓存节点保留1.2倍的负载裕量,更新各缓存节点负载上限,如式(25)所示:
式(25)中,Lc(n)表示当前时刻缓存节点n的负载上限。
S6.在一致性哈希环上为请求选择虚拟节点分为如下步骤:
①将请求的URL作为式(20)中MD5函数的输入,得到请求的哈希值,如式(26)所示:
Hr=MD5(Sr) (26)
式(26)中,Sr表示请求r的URL,Hr表示请求r的哈希值;
②将Hr映射到一致性哈希环上,以Hr的位置为起点,找出顺时针方向的首个虚拟节点Vf。
③搜索拥有虚拟节点Vf的缓存节点,如果该缓存节点当前负载已达到其负载上限,则用该虚拟节点Vf的值更新Hr的值,并跳转至步骤②;否则,选择该缓存节点提供服务,如式(27)所示:
Hr=Val(Vf) (27)
式(27)中,Val(Vf)表示虚拟节点Vf的哈希值。
④如果遍历相邻两段弧上所有虚拟节点均未找到能够提供服务的缓存节点,则结束搜索,直接返回。
上述基于虚拟节点的有限负载一致性哈希负载均衡策略,在有限负载一致性哈希策略基础上进行改进,引入虚拟节点,解决了原策略负载均衡性受节点映射分散性影响较大的不足,同时能够支持同构和异构集群缓存代理,为集群缓存代理负载均衡提供了新的思路和解决方案。上述的基于虚拟节点的有限负载一致性哈希负载均衡策略具有很强的通用性和适用性,能够显著提高集群缓存代理的负载均衡性,降低骨干网带宽和集群缓存代理响应时间,为用户提供更稳定的服务和更快速的响应。
以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。本发明未详细描述的技术、形状、构造部分均为公知技术。
Claims (6)
1.一种基于虚拟节点的有限负载一致性哈希负载均衡策略,其特征在于,所述策略包括如下步骤:
S1.将缓存节点内存大小、处理器内核总数及磁盘大小作为独立信息数据波动赋权法的输入指标,计算各缓存节点性能量化值及性能量化值占比;
S2.设置虚拟节点总数为缓存节点个数的200-300倍,根据虚拟节点总数和步骤S1中各缓存节点性能量化值占比,计算各缓存节点应分得的虚拟节点数目;
S3.利用Random函数为每个缓存节点生成对应数目的虚拟节点;
S4.计算各缓存节点拥有虚拟节点数的最大公约数m,将一致性哈希环均分为m段弧,通过MD5函数将各缓存节点拥有的虚拟节点均匀映射到一致性哈希环的各段弧上;
S5.请求到达负载均衡器时,负载均衡器更新集群缓存代理负载量和各缓存节点负载上限值;
S6.将请求的URL作为步骤S4中MD5函数的输入,利用有限负载一致性哈希的请求分配策略在一致性哈希环上选择虚拟节点,并利用拥有该虚拟节点的缓存节点进行服务;
所述步骤S1中,独立信息数据波动赋权法计算各缓存节点性能量化值及性能量化值占比的具体过程如下:
S11.计算指标j的离差系数Vj,计算公式如下:
S13.归一化Vj得到Vj′,归一化Dj得到Dj′;
S14.计算指标j的纯量信息Ij,计算公式如下:
Ij=Vj′×Dj′
S15.计算指标j的权重值Wj,计算公式如下:
其中,i表示指标个数;
S16.计算指标j的归一化值Qj,计算公式如下:
其中,Tj表示指标j包含的样本集,Max(Tj)表示指标j的最大值;
S17.将Qj与该指标权重值Wj线性加权,得到缓存节点n的性能量化值Fn,计算公式如下:
其中,n∈[1,s],s表示缓存节点数目;
S18.计算缓存节点n的性能量化值占比θn,计算公式如下:
所述步骤S4中利用MD5函数将各缓存节点拥有的虚拟节点均匀映射到一致性哈希环各段弧上的过程具体如下:
S41.计算矩阵N中各元素的最大公约数m,将一致性哈希环均分为m段弧;
S42.计算每个缓存节点在每段弧上需要分配的虚拟节点数量,构成集合C,如下所示:
S43.计算一致性哈希环上每段弧的长度davg,如下所示:
其中,Hmax表示哈希环的最大值;
S44.定位当前弧区间编号k,初始值k=1;
S45.比较当前弧区间编号k是否大于m,如果大于m,则结束执行,虚拟节点映射完成;否则执行步骤S46;
S46.计算当前弧区间起始坐标Bs,如下式所示:
S47.循环各缓存节点,参照集合C中各元素值,为每个缓存节点随机取出对应数量的虚拟节点,将各虚拟节点主机号作为MD5函数输入,得到各虚拟节点哈希值,如下所示:
Hv=MD5(Sv)
其中,Sv表示第v个虚拟节点的主机号,Hv表示第v个虚拟节点的哈希值,v∈[1,Nt];
S48.将各虚拟节点映射到当前弧区间内;
S49.递增当前弧区间编号k,跳转至步骤S44;
所述步骤S6中,在一致性哈希环上选择虚拟节点的过程如下:
S61.将请求的URL作为步骤S47中MD5函数的输入,得到请求的哈希值,如下所示:
Hr=MD5(Sr)
其中,Sr表示请求r的URL,Hr表示请求r的哈希值;
S62.将Hr映射到一致性哈希环上,以Hr的位置为起点,找出顺时针方向的首个虚拟节点Vf;
S63.搜索拥有虚拟节点Vf的缓存节点,如果该缓存节点当前负载已达到其负载上限,则用该虚拟节点Vf的值更新Hr的值,并跳转至步骤S62;否则,选择该缓存节点提供服务,如下所示:
Hr=Val(Vf)
其中,Val(Vf)表示虚拟节点Vf的哈希值;
S64.如果遍历相邻两段弧上所有虚拟节点均未找到能够提供服务的缓存节点,则结束搜索,直接返回。
3.根据权利要求2所述的一种基于虚拟节点的有限负载一致性哈希负载均衡策略,其特征在于,步骤S2中各缓存节点应分得的虚拟节点数目计算如下:
Nn=Nt×θn
其中,Nt表示虚拟节点总数,Nn表示缓存节点n拥有的虚拟节点数。
4.根据权利要求3所述的一种基于虚拟节点的有限负载一致性哈希负载均衡策略,其特征在于,所述S3步骤具体如下:
利用各缓存节点拥有的虚拟节点数构建矩阵N,如下所示:
N=(N1 N2 … Nn … Ns-1 Ns)
利用Random函数并参照矩阵N中各元素值,为每个缓存节点随机生成对应数目的唯一虚拟节点主机号(IP:Port)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911044751.2A CN110830562B (zh) | 2019-10-30 | 2019-10-30 | 一种基于虚拟节点的有限负载一致性哈希负载均衡策略 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911044751.2A CN110830562B (zh) | 2019-10-30 | 2019-10-30 | 一种基于虚拟节点的有限负载一致性哈希负载均衡策略 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110830562A CN110830562A (zh) | 2020-02-21 |
CN110830562B true CN110830562B (zh) | 2022-06-10 |
Family
ID=69551368
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911044751.2A Active CN110830562B (zh) | 2019-10-30 | 2019-10-30 | 一种基于虚拟节点的有限负载一致性哈希负载均衡策略 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110830562B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111917851A (zh) * | 2020-07-22 | 2020-11-10 | 电信科学技术第五研究所有限公司 | 一种基于一致性哈希实现带权的负载均衡调度方法 |
CN112492008B (zh) * | 2020-11-19 | 2022-05-20 | 深圳壹账通智能科技有限公司 | 节点位置确定方法、装置、计算机设备和存储介质 |
CN113014439B (zh) * | 2021-04-19 | 2021-10-26 | 广州大一互联网络科技有限公司 | 一种数据中心带宽的虚拟弹性管理方法 |
CN113630319B (zh) * | 2021-06-28 | 2022-08-19 | 济南浪潮数据技术有限公司 | 一种数据分流方法、装置及相关设备 |
CN113821340A (zh) * | 2021-08-27 | 2021-12-21 | 济南浪潮数据技术有限公司 | 分布式系统的动态均衡方法、系统、终端及存储介质 |
CN113886081A (zh) * | 2021-09-29 | 2022-01-04 | 南京地铁建设有限责任公司 | 一种基于负载均衡的车站多刷脸阵列人脸库分割方法 |
CN115665161B (zh) * | 2022-10-17 | 2024-04-02 | 重庆邮电大学 | 一种clickhouse实时数据流负载均衡方法及系统 |
CN118227673B (zh) * | 2024-05-22 | 2024-08-02 | 山东港口科技集团烟台有限公司 | 一种物联数据缓存处理方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107197035A (zh) * | 2017-06-21 | 2017-09-22 | 中国民航大学 | 一种基于一致性哈希算法的亲和性动态负载均衡方法 |
CN110336891A (zh) * | 2019-07-24 | 2019-10-15 | 中南民族大学 | 缓存数据分布方法、设备、存储介质及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8914457B2 (en) * | 2009-10-06 | 2014-12-16 | Red Hat, Inc. | Caching of nodes in cache cluster |
US9497281B2 (en) * | 2013-04-06 | 2016-11-15 | Citrix Systems, Inc. | Systems and methods to cache packet steering decisions for a cluster of load balancers |
US9860316B2 (en) * | 2014-09-19 | 2018-01-02 | Facebook, Inc. | Routing network traffic based on social information |
CN109218438A (zh) * | 2018-10-12 | 2019-01-15 | 山东科技大学 | 一种分布式缓存服务器集群的性能优化方法 |
-
2019
- 2019-10-30 CN CN201911044751.2A patent/CN110830562B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107197035A (zh) * | 2017-06-21 | 2017-09-22 | 中国民航大学 | 一种基于一致性哈希算法的亲和性动态负载均衡方法 |
CN110336891A (zh) * | 2019-07-24 | 2019-10-15 | 中南民族大学 | 缓存数据分布方法、设备、存储介质及装置 |
Non-Patent Citations (3)
Title |
---|
B. Campbell ; S. Donovan等.Diameter Load Information Conveyance.《IETF 》.2019, * |
一致性哈希的数据集群存储优化策略研究;邱宁佳等;《信息与控制》;20161215(第06期);全文 * |
基于虚节点的一致性哈希算法的优化;巴子言等;《软件》;20141215(第12期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110830562A (zh) | 2020-02-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110830562B (zh) | 一种基于虚拟节点的有限负载一致性哈希负载均衡策略 | |
Yu et al. | Location-aware associated data placement for geo-distributed data-intensive applications | |
US8087025B1 (en) | Workload placement among resource-on-demand systems | |
KR102338208B1 (ko) | 데이터를 처리하기 위한 방법, 장치 및 시스템 | |
US8214498B2 (en) | Method and system for managing a peer of a peer-to-peer network to search for available resources | |
US8176037B2 (en) | System and method for SQL query load balancing | |
CN108416465B (zh) | 一种移动云环境下的工作流优化方法 | |
Chen et al. | MapReduce skyline query processing with a new angular partitioning approach | |
JP5600573B2 (ja) | 負荷分散装置及びプログラム | |
CN113778683B (zh) | 一种基于神经网络的Handle标识体系解析负载均衡方法 | |
CN111177154A (zh) | 分布式数据库缓存方法及其哈希环优化 | |
US20170140028A1 (en) | Load balancing for multi-tiered querying | |
JP2009295127A (ja) | アクセス方法、アクセス装置及び分散データ管理システム | |
CN111159193A (zh) | 多层一致性哈希环及其在创建分布式数据库中的应用 | |
Zou et al. | Semantic overlay network for large-scale spatial information indexing | |
Mostafa et al. | An intelligent dynamic replica selection model within grid systems | |
CN112765177B (zh) | 一种基于负载驱动的分布式图数据分割和复制方法 | |
US9898518B2 (en) | Computer system, data allocation management method, and program | |
CN109844723B (zh) | 使用基于服务的统计信息进行主控建立的方法和系统 | |
Shao et al. | Effective load balancing mechanism for heterogeneous range queriable cloud storage | |
Irandoost et al. | Learning automata-based algorithms for MapReduce data skewness handling | |
CN113377544A (zh) | 一种基于负荷数据动态更新率的web集群负载均衡方法 | |
Al Ridhawi et al. | Client-side partial file caching for cloud-based systems | |
Wang et al. | Low-cost web service discovery based on distributed decision tree in P2P environments | |
CN108965387B (zh) | 一种提高p2p数据存储抗毁性的均衡方法及系统 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |