一致性hash

余数hash算法:

原理:通过 hashCode%节点数 来实现。

假设key1对应的hash值为10,节点数量为3,取余数得1,那么key1对应的节点为node1。

由于hashcode的随机性比较强,所以,所有的key可以很均匀的分布到所有的节点上。
但是,在分布式环境下,这个hash算法存在很大的问题:

假设节点数量从3变成了4,由于key1的hash值不变,取余数的结果变成了2,那么key1对应的节点变成了node2。

这就导致了,当节点数量发生变化,大多数的数据指向的节点会发生变化。

你可能感兴趣的:(一致性hash)