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

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

内容简介:本文简单介绍一下有限负载一致性哈希(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 ,更详细的内容请参考参考资料。


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

查看所有标签

猜你喜欢:

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

算法分析导论(第2版)(英文版)

算法分析导论(第2版)(英文版)

[美]Robert Sedgewick(罗伯特•塞奇威克)、[美]Philippe Flajolet(菲利普•弗拉若莱) / 电子工业出版社 / 2015-6 / 128.00元

《算法分析导论(第2版)(英文版)》全面介绍了算法的数学分析中所涉及的主要技术。涵盖的内容来自经典的数学课题(包括离散数学、初等实分析、组合数学),以及经典的计算机科学课题(包括算法和数据结构)。《算法分析导论(第2版)(英文版)》的重点是“平均情况”或“概率性”分析,书中也论述了“最差情况”或“复杂性”分析所需的基本数学工具。 《算法分析导论(第2版)(英文版)》第 1 版为行业内的经典著......一起来看看 《算法分析导论(第2版)(英文版)》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

html转js在线工具
html转js在线工具

html转js在线工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具