分布式场景下数据分布:哈希分布和顺序分布

本文探讨了分布式系统中数据分布的两种常见方式:哈希分布和顺序分布。哈希分布通过计算哈希值分配数据到节点,而一致性哈希和虚拟节点则用于解决数据迁移和负载均衡问题。顺序分布则保持数据的有序性,通过Meta表支持更大规模的集群。
摘要由CSDN通过智能技术生成

分布式系统的数据分布在多个节点中,常用的数据分布方式有哈希分布和顺序分布。

哈希分布

哈希分布就是将数据计算哈希值之后,按照哈希值分配到不同的节点上。例如有 N 个节点,数据的主键为 key,则将该数据分配的节点序号为:hash(key)%N。
传统的哈希分布算法存在一个问题:当节点数量变化时,也就是 N 值变化,那么几乎所有的数据都需要重新分布,将导致大量的数据迁移。

一致性哈希:减少数据迁移

Distributed Hash Table(DHT):对于哈希空间 0~2^n ,将该哈希空间看成一个哈希环,将每个节点都配置到哈希环上。每个数据对象通过哈希取模得到哈希值之后,存放到哈希环中顺时针方向第一个大于等于该哈希值的节点上。

一致性哈希的优点:在加入或者删除节点时只会影响到哈希环中相邻的节点
例如:增加了机器c4,只针对c3和c4之间的数据进行迁移,即将o4数据迁移到c4中。
在这里插入图片描述

虚拟节点:解决增加机器时负载不均衡

一致性哈希解决了数据迁移量大的问题,但只是减轻了插入节点顺时针开始遇到的第一个机器负担,对于其他的节点并未起到减轻负载的作用。

解决办法:引入虚拟节点。将每台物理机器虚拟为一组虚拟机器,放置在hash环上。对于每一个数据对象,首先按照顺时针查找第一个虚拟节点,再通过虚拟节点找到对应的物理节点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值