从工程实践的角度理解一致性哈希算法(Consistent Hashing)
发布时间
阅读量:
阅读量
文章结构概览
- 需求背景
- 基本原理
- Hash环形空间
- Hash键值映射
- 节点 增加删除
- 映射 数据倾斜
- Hash 虚拟节点
- 基本原理
注:一致性哈希算法能够在后台数据库服务器及缓存服务器的数据存储、访问和持久化等多个方面提供有效的解决方案,尤其在分布式数据存储场景中展现出显著的优势。为了后续针对PostgreSQL数据库的功能开发(如Oracle Rac等),有必要重新梳理一致性哈希算法的核心原理及其特性。
饭前小甜点:假设当前有5台Redis数据库服务器,当数据对象Object 6进入系统时,通过散列公式hash(i)%5计算其应存放的服务器位置。若Hash(i) = i%N,则该数据会被分配至编号为1的服务器。然而,若此时新增了一台服务器,散列公式则变为Hash(i)%6,此时Object 6将被分配至0号服务器,但实际上该数据仍保存在1号服务器上。
于是 这就引发了一个问题了 !!??!!
需求背景分析
在实际应用场景中:当部署N台缓存服务器(Cache)时,一种广泛采用的负载均衡策略是对特定资源object x的请求,通过简单线性哈希:hash(x) = (ax + b) mod (N)的方式计算其哈希值,并将其均匀地分配至某一缓存服务
全部评论 (0)
还没有任何评论哟~
