第7章 分布式架构设计 【如何设计分布式缓存】

7、如何设计分布式缓存?

答:

        在写入数据时,对Key值进行散列处理(利用求余算法),在查询数据时,采用同样的算法查询数据。但它不稳定,当增加一个节点时,整个数据就要重新分布;重新分布数据会导致分布式缓存的不可用;这时一种新的算法“一致性Hash算法”被推出以解决这个问题;但是一致性Hash算法在减少节点时,就会将失效的那个节点的数据全部都压到另一个节点上,导致那个节点也失效,进而造成节点一个个失效的“雪崩现象”。

        书中讲(目前最有效的解决方案不再是一致性Hash算法,而是求余算法,有节点失效时不改变算法。譬如,原来是4个节点,就是除以4求余。当某一个节点失效以后,还是除以4求余。这时,虽然有一部分数据无法在缓存中查询,增大了部分数据库压力,但至少缓存服务器是稳定的。通过对每一个节点进行主从同步,将某个节点失效时快速切换到从节点上,就可以实现高可用设计了);但是这是针对节点消除的方案,未针对节点增加进行讲解;感觉应该是在一致性Hash算法的基础上增加主从设计,这样即解决了节点消除的问题, 也解决了节点增加的问题。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值