一致性HASH算法说明

1. 概念

一致性哈希算法在1997年由麻省理工学院提出,是一种特殊的哈希算法,目的是解决分布式缓存的问题
[1] 在移除或者添加一个服务器时,能够尽可能小地改变已存在的服务请求与处理请求服务器之间的映射关系。一致性哈希解决了简单哈希算法在分布式哈希表( Distributed Hash Table,DHT) 中存在的动态伸缩等问题 [2] 。

2. 原理说明

知识复习:
1. 常规hash由多少位16进制数组成??? 8位16进制数组成 2^32次方
2. 如果对相同的数据进行hash计算问结果是否相同??? 结果必然相同.
一致性HASH算法说明

3. 特性一平衡性

①平衡性是指hash的结果应该平均分配到各个节点,这样从算法上解决了负载均衡问题.
实现平衡性的方案: 引入虚拟节点
一致性HASH算法说明

4. 特性二单调性

②单调性是指在新增或者删减节点时,不影响系统正常运行 [4] 。
特点:在进行数据迁移时,要求尽可能小的改变数据.
一致性HASH算法说明

5. 特性三分散性

③分散性是指数据应该分散地存放在分布式集群中的各个节点(节点自己可以有备份),不必每个节点都存储所有的数据 [4] 。
俗语: 鸡蛋不要到放到一个篮子里