美文网首页
双十一某电商缓存雪崩

双十一某电商缓存雪崩

作者: sknfie | 来源:发表于2020-11-17 18:52 被阅读0次

    概述

    由于缓存不可用,导致大量请求访问后端服务,可能 mysql 扛不住高并发而打死, 像滚雪球一样,影响越来越大,最后导致整个网站崩溃不可用。

    缓存雪崩场景

    缓存雪崩这种场景是缓存架构中非常重要的一个环节,因此,通过缓存雪崩的解决方案来避免缓存雪崩造成整个系统崩溃,带来巨大的经济损失:


    缓存雪崩

    1、redis集群彻底崩溃
    2、缓存服务大量对redis的请求block住,占用资源
    3、缓存服务大量的请求打到源头服务去查询mysql,直接打死mysql
    4、源头服务因为mysql被打死也崩溃,对源服务的请求也block住,占用资源
    5、缓存服务大量的资源全部耗费在访问redis和源服务无果,最后自己被拖死,无法提供服务
    6、nginx无法访问缓存服务,redis和源服务,只能基于本地缓存提供服务,但是缓存过期后,没有数据提供
    7、网站崩溃

    缓存雪崩的经验和教训

    某电商双十一出现缓存雪崩,由于服务本身的bug导致整个缓存的集群彻底崩溃了,把整个集群给弄挂了,虽然也是部署了主备方式双机房的,但是最后还是死了:

    • 电商大量的,几乎所有的应用都是基于那个缓存集群去开发的。
    • 各种服务的线程资源全部被耗尽,然后用在了访问那个缓存集群时的等待、超时和报错上了。
    • 导致各种服务就没有资源对外提供服务。
    • 各种降级措施也没做好,直接就是整体系统的全盘崩溃。
    • 导致网站就没法对外出售商品咯,导致了很大数额的经济的损失。最后体现在股市上就是市值大量贬值。

    缓存高可用架构设计

    缓存高可用架构设计需要考虑高并发场景下的各种问题,通过需要结合业务,怎么去设计整套缓存架构的?
    因此,做系统架构设计的时候,考虑一下各种高并发场景下可能出现的问题:

    • 数据不一致
    • 热点缓存
    • 重建并发冲突
    • redis高可用性
    • 缓存雪崩
    • 缓存穿透
    • 缓存失效

    总之,架构设计做好一些,稳定性也做好一些。设计的系统能够承载各种各样的故障,才能在真正发生故障的时候减少损失。

    相关文章

      网友评论

          本文标题:双十一某电商缓存雪崩

          本文链接:https://www.haomeiwen.com/subject/jvkfiktx.html