应届生面试要点总结(15)分布式相关

一致性哈希hash:在移除或添加一个cache时,能够尽可能小的改变已经存在的key映射关系。

平衡性:哈希的结果能够尽可能分布到所有缓存中。

单调性:如果已经有一些内容通过hash分派到了相应的缓冲中,又有新的缓冲区加入到系统中,那么hash的结果应该能保证原有的已经分配的内容可以被映射到新的缓冲区中,或原来的缓冲区中。

分散性:在分布式环境中,终端可能看不到所有缓冲区,而只能看到一部分,当终端希望通过hash过程将内容映射到缓冲区上时,由于不同终端所见的缓冲范围有可能不同,可能导致相同的内容被不同的终端映射到不同的缓冲区,这种情况应该避免。

负载:既然不同的终端可能将相同的内容映射到不同缓冲区中,那么对于一个特定的缓冲区而言,也可能被不同的用户映射为不同的内容。

在分布式集群中,对机器的添加和删除或机器故障后自动摆脱集群,这些操作是分布式集群管理最基本的功能,若采用常用的hash(object)%N算法,那么在机器添加或删除以后,很多原有的数据就无法找到,所以出现一致性。

一致性hash算法:

环形hash空间:按照常用的hash算法将对应的key哈希到一个具有2的32次方个桶的空间,即(0-2^32-1)的数字空间中,现在我们将这些数字头尾相连,想象成一个闭合的环形。

把数据通过一定的hash算法映射到环上;将机器通过一定的hash算法映射到环上。

节点按顺时针转动,遇到的第一个机器,就把数据放在该机器上。

猜你喜欢

转载自blog.csdn.net/SEUSUNJM/article/details/86595165