一致性哈希通俗笔记

一致性哈希Consistent Hashing,一种数据结构。

内容参考自视频:一致性哈希 - Consistent Hashing是什么?为什么系统设计面试中经常会提到?10分钟讲解一致性哈希 | 系统设计System Design EP

Why Consistent Hashing?

普通的哈希不具有Scalable,当服务器增多或者减少的时候,散列就乱了。

一致性哈希的存储结构:

一个抽象的环状,范围0到2^32 -1(实际上是一个映射函数,而非真的这么长的数组)

哈希操作

当来了一个数据,经过Hashing后映射到0-2^32-1的某个数,然后顺时针寻找第一个服务器,就是对应存储的服务器。

增加或减少服务器

原本该服务器上存储的Hashing,按顺时针放到下一台服务器上

如果环上的服务器距离太近,负载不均衡怎么办(Nodes are very close.)

虚拟节点(Virtual Node),再来一次Hash。具体就是,在环空间中设置多个位置,即“虚拟服务器”,这些位置比较分散,分布均匀,然后将它们映射到一个服务器上。每一个服务器都对应多个这样的节点。那么来一个新的数据经过Hashing后,放到虚拟节点上,然后具体物理存储,实际存储到该虚拟节点对应的服务器上,由此实现负载均衡。

posted @ 2022-12-04 22:47  倦鸟已归时  阅读(18)  评论(0编辑  收藏  举报