一致性Hash算法

3.3 一致性Hash算法

3.3.1 算法介绍

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

3.3.2 原理说明

常识:
1.常见hash函数8位16进制数. (24)8 = 2^32 种可能性
2.如果对相同的数据进行hash计算 值必然相同.
3.如果值相同.,则数据不一定相同 hash碰撞.

在这里插入图片描述

3.3.3 特性-平衡性(均衡性)

①平衡性是指hash的结果应该平均分配到各个节点,这样从算法上解决了负载均衡问题 [4] 。
说明: 通过虚拟节点实现数据的平衡
在这里插入图片描述

3.3.4 特性-单调性

②单调性是指在新增或者删减节点时,不影响系统正常运行 [4] 。
特点: 如果实现数据迁移时,应该尽可能保证原有的数据不变.

3.3.5 特性-分散性

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

posted @ 2021-01-27 23:26  Liang-shi  阅读(121)  评论(0编辑  收藏  举报