一致性hash算法小结
2024-09-26 05:05:55
把服务器的IP或者主机名作为key对2^32求余,余数一定是2^32-1,然后放到(平行映射)0~2^32次方首尾相连的环上。
理想状态下服务器会均匀分布在这个环上,当数据存储时,依然把key对2^32进行求余,然后分布在hash环上,并且按顺时针就近存储。
如果 某一个节点失效,那么仅仅会影响 该节点的数据,对其他节点无影响!
上图仅仅是理想状态下,因为服务器IP或者主机名取模后,有可能造成偏斜,既:节点没有均匀分布在hash环上,而是挤在了一起。
这样的情况下node1 承载的数据量是最大的!这种情况下产生了一种虚拟服务器的概念。例如我们有三台缓存服务器,单台服务器经过某种算法取模,会得到N个虚拟点,这些虚拟点均匀的分布在hash环上,就解决了hash环偏斜的问题。
最新文章
- ECMASCript2015 提案 stage-3的对象展开运算符
- 12.PHP内核探索:PHP的FastCGI
- ASP.NET 分页控件
- linux中socket的理解---4
- 安装Android sdk 4.4(19)出现问题的解决方案
- Asp.Net MVC 3【URLs, Routing,and Areas】续
- uboot环境变量与内核MTD分区关系
- [About me] 关于Alima博主
- Android Intent的花样启动
- 输入三个整数x、y、z,请把这三个数由小到大输出
- pymysql安装和使用
- [Other] Nuget 构建服务器与常用命令
- 经典面试题:一张表区别DOM解析和SAX解析XML
- Mac下全局安装yarn
- 硬件笔记之MacMini开启HiDPI
- IDEA上的项目托管到码云步骤
- Mongo数据两表关联创建视图示例
- 20155211《网络对抗》Exp02 后门原理与实践
- Visio分类
- 【数论】nefu119 组合素数
热门文章
- 【个人笔记】关于C++小数的处理
- 再见NullPointerException。在Kotlin里null的处理(KAD 19)
- jmeter接口测试--响应结果Unicode转码成中文
- [HNOI2012]三角形覆盖问题
- for循环再探
- 搭建springmvc项目没扫描到mapper和service
- web相关基础知识2
- Vue2.0 新手完全填坑攻略——从环境搭建到发布(转载)
- SPOJ HIGH(生成树计数,高斯消元求行列式)
- 洛谷 P3477 [POI2008]PER-Permutation 解题报告