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

双十一某电商缓存雪崩

作者: 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