一致性哈希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后,放到虚拟节点上,然后具体物理存储,实际存储到该虚拟节点对应的服务器上,由此实现负载均衡。
标签:存储,哈希,一致性,服务器,通俗,节点,Hashing From: https://www.cnblogs.com/zhaoke271828/p/16951102.html