负载均衡策略之有限负载一致性哈希

栏目: 后端 · 发布时间: 5年前

内容简介:本文简单介绍一下有限负载一致性哈希(Consistent Hashing with Bounded Loads)(或者叫有界负载一致性哈希、有负载界限/上限的一致性哈希)这个负载均衡策略。之前介绍的一致性哈希策略 有一个缺陷,那就是没有解决热点问题:当有部分资源是热点资源或者部分用户请求量比较大的时候,会出现部分节点需要处理大量请求(这些请求根据一致性哈希策略都选中了固定的部分节点),出现负载非常不均的情况,因为是一致性哈希所以这些请求没法分摊到其他节点上,导致出现持续的负载不均和热点问题。下面要介绍的 C

本文简单介绍一下有限负载一致性哈希(Consistent Hashing with Bounded Loads)(或者叫有界负载一致性哈希、有负载界限/上限的一致性哈希)这个负载均衡策略。

之前介绍的一致性哈希策略 有一个缺陷,那就是没有解决热点问题:当有部分资源是热点资源或者部分用户请求量比较大的时候,会出现部分节点需要处理大量请求(这些请求根据一致性哈希策略都选中了固定的部分节点),出现负载非常不均的情况,因为是一致性哈希所以这些请求没法分摊到其他节点上,导致出现持续的负载不均和热点问题。下面要介绍的 Consistent Hashing with Bounded Loads 就是一种解决这个问题的方法。

有限负载一致性哈希(Consistent Hashing with Bounded Loads)

有限负载一致性哈希(Consistent Hashing with Bounded Loads) 出自论文 Consistent Hashing with Bounded Loads ,主要思路是,根据当前负载情况对所有节点限制一个最大负载,在一致性哈希中对 hash 环进行查找时将跳过超出最大负载的节点,通过把过载的请求转移到其他节点上来解决热点和不均衡问题:

  • R : 当前所有节点的总负载(正在处理的总请求数)
  • T : 节点总个数
  • L : 当前所有节点的平均负载
  • L = R/T
  • ε : 一个参数用于表示在平均负载的基础上能够承受的额外负载上限,可以按照实际需求进行设置(根据 vimeo 分享的 经验 这个值推荐设置为 0.25~1)
  • M : 节点的最大负载上限
  • M = L*(1+ε) = R*(1+ε)/T
  • 一致性哈希中进行节点查找时,增加检查匹配的节点的负载(正在处理的请求数)是否达到负载上限 M 的操作,如果达到了上限则跳过当前节点继续往后查找。

通过上面可以发现 Consistent Hashing with Bounded Loads 结合了最少连接策略 和一致性哈希 策略各自的优点,即平衡了负载又兼顾了一致性哈希,并且还可以通过调整转化为最少请求策略或一致性哈希策略:

  • ε 的值是 0 的时候,就实现了最少连接策略的效果
  • ε 的值是无穷大的时候,就是传统的一致性哈希策略。

上面的方法是没有区分节点权重的,如果要支持节点权重的话,需要做一点改动:

  • R : 当前所有节点的总负载(正在处理的总请求数)
  • T : 所有节点的权重总和
  • L : 当前所有节点的平均负载(基于权重的平均负载)
  • L = R/T
  • W : 当前节点的权重值
  • ε : 一个参数用于表示在平均负载的基础上能够承受的额外负载上限。
  • M : 节点的最大负载上限
  • M = W*L*(1+ε) = W*R*(1+ε)/T
  • 一致性哈希中进行节点查找时,增加检查匹配的节点的负载(正在处理的请求数)是否达到负载上限 M 的操作,如果达到了上限则跳过当前节点继续往后查找。

可以看到主要区别是算平均负载的时候是基于节点的权重和来计算的,算负载上限的时候是按权重比来计算的。

简单介绍了一下 Consistent Hashing with Bounded Loads ,更详细的内容请参考参考资料。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

计算机与人脑

计算机与人脑

[美] 约·冯·诺意曼 / 甘子玉 / 商务印书馆 / 1965-3 / 7.00元

《计算机与人脑》是自动机(以电子计算机为代表)理论研究中的重要材料之一。原书是冯·诺意曼在1955-1956年准备讲演用的未完成稿。著者从数学的角度,主要是从逻辑和统计数学的角度,探讨计算机的运算和人脑思维的过程,进行了一些比较研究。书中的许多技术推论带有预测性,尚待今后实验研究及进一步探讨才能判断其是否正确。一起来看看 《计算机与人脑》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具