一致性hash算法原理

hash算法及应用场景

hash算法,就是将一个数据,通过某种hash算法,比如md5,将其转换成一个新值。在密码学里也叫hash摘要,摘要算法。或者叫hash散列。在程序开发设计中,通常是将某一类数据,找出数据的特征值,比如ID,进行hash,然后通过hash和原值绑定映射起来,便于候选的筛选和比较。在分布式存储里,通常可以将数据进行hash算法,映射到不同存储节点里,比如数据库分库,或者其他数据的分片存储。

分布式存储hash算法具体实现过程

这里以电商系统订单数据分库存储为例,比如某宝订单数据非常多,特别是双十一等大促活动,订单数据不分片肯定支持不了那么大高并发,假如数据存储在mysql库,单库压力非常大,肯定扛不住,必须分片即分库。可以通过hash算法,比如开发或者选用某个hash函数,将订单ID进行hash出一个整数值,假如准备的有m台数据库进行存储,将hash出来整数值,对m取模,不同的订单,进入不同的库。查询时,由于hash算法特点,同一个key,hash出来的值肯定相同,肯定能路由到正确的库,查询到数据。这样对订单数据进行分库存储,大大提高了订单业务的并发能力。

分布式存储hash算法存在的问题

还是以某宝订单通过hash分库存储为例,假如某宝订单量越来越大,已有的m个库,已经无法满足高并发请求了,需要增加数据库分担压力,数据库总数增大到n,但是通过上面的数据hash路由过程,由于m变成了n,将导致已经存储

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值