一致性hash算法小结

时间:2023-03-09 20:13:05
一致性hash算法小结
  把服务器的IP或者主机名作为key对2^32求余,余数一定是2^32-1,然后放到(平行映射)0~2^32次方首尾相连的环上。
一致性hash算法小结
一致性hash算法小结
一致性hash算法小结
  理想状态下服务器会均匀分布在这个环上,当数据存储时,依然把key对2^32进行求余,然后分布在hash环上,并且按顺时针就近存储。
一致性hash算法小结
一致性hash算法小结
  如果 某一个节点失效,那么仅仅会影响 该节点的数据,对其他节点无影响!
  上图仅仅是理想状态下,因为服务器IP或者主机名取模后,有可能造成偏斜,既:节点没有均匀分布在hash环上,而是挤在了一起。
一致性hash算法小结
一致性hash算法小结
  这样的情况下node1 承载的数据量是最大的!这种情况下产生了一种虚拟服务器的概念。例如我们有三台缓存服务器,单台服务器经过某种算法取模,会得到N个虚拟点,这些虚拟点均匀的分布在hash环上,就解决了hash环偏斜的问题。