一致性Hash

hadoop是一个分布式文件系统,含有过滤器
查找时:key先hash找到一些可能文件再遍历找key

普通hash

再多个服务器间,均等存放数据,冷门热门都均等。当新增或者减少服务器的时候,数据迁移的代价非常大,因为需要重新计算所有数据,再mol新服务器总数,所以需要一个新的结构

一致性hash

假如有·三台数据服务器

  • 数据增加方法

在环上找到hash后的值,数据存储到顺时针下一个服务器上。
在这里插入图片描述

  • 数据迁移
  • 删掉新服务器则把数据迁移到顺时针的第一个服务器1中
    在这里插入图片描述

怎么实现顺时针寻找下一台服务器?

在每个服务器中存一个有序数组 [ 2,500亿,50万亿 ]
再通过二分查找服

新增服务器之后,会产生服务器负载不均衡

解决办法:虚拟节点技术
核心:利用比例划分

每个服务器新建1000个虚拟节点

  1. 迁移时,将虚拟节点数据迁移翻译为服务器数据迁移
  2. 新增服务器时,给新服务器分配1000个虚拟节点,由于按比例分配,旧服务器向新服务器给数据
  3. 删除时,服务器将数据均匀给回其他服务器,因为按比例分配。

在这里插入图片描述

可以对不同性能的服务器分配不同数量的虚拟节点
m1 ( 强 ) --> 2000个
m2 --> 1000个
m3 --> 1000个
m3 ( 弱 ) --> 500个

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值