一致性哈希
2020-02-12 10:10:22 0 举报
一致性哈希
作者其他创作
大纲/内容
归属m3
out
数据库3
7亿
(1)但是机器比较少的时候,可能做不到环一下子就均分(2)即便环很少的时候可以做到均分,但是如果增加机器或者减少机器的时候,马上负载就会不均衡,比如左图即便一开始三个机器是均分的,都是三分之一,但是现在加了一个m4机器,负载一下子就不均衡了,就变成了m3和m4是六分之一而m1和m2是三分之一。以上两个问题可以通过虚拟结点的技术来实现。
m3
归属m1
5347亿
数据库1
逻辑层
0 or 1 or 2
%3
7万万亿
归属m4
“何” 34
“何” 33
归属m2
m1
m2
减机器也是一样的逻辑,假设现在在m4需要下线了,m4只需要把它的数据给顺时针离他最近的机器m3即可.
哈希函数f()
数据层
上面的数据通过哈希函数的计算一定会打到环上面的一个位置,这个数据归属的位置为顺时针归属最近的机器,如左图所示,归属的服务器为m2.(顺时针找最近的机器可以通过在逻辑端维护一个所有机器的哈希值的有序排列,当一个数据进来的时候通过二分的方式找到距离最近的最左的机器即可)
数据库2
m4
0 条评论
下一页