目录
百战程序员,全站22050+开发课程+文档 ,学习精选优质好课快人一步!观看视频 快捷键ALT+N

JAVA全系列 教程

3762个小节阅读:7089.7k

收藏
全部开发者教程

C语言快速入门

JAVA全系列 教程

面向对象的程序设计语言

Python全系列 教程

Python3.x版本,未来主流的版本

人工智能 教程

顺势而为,AI创新未来

大厂算法 教程

算法,程序员自我提升必经之路

C++ 教程

一门通用计算机编程语言

微服务 教程

目前业界流行的框架组合

web前端全系列 教程

通向WEB技术世界的钥匙

大数据全系列 教程

站在云端操控万千数据

AIGC全能工具班

A

A A

White Night

阅读(27)
赞(0)

缓存雪崩的产生

缓存雪崩是指在某一时刻,大量缓存突然失效,请求全部转发到数据库,数据库瞬时压力过大导致崩溃。缓存雪崩的产生原因一般有两种:

原因一

缓存中大量的数据同时过期。在某一时刻,大量的缓存同时过期,此时如果有请求访问这些数据的话,缓存不存在,会将请求转移到数据库,如果这些的请求量比较大的,导致数据库的压力增大,严重会导致数据库崩溃。此时解决方案一般有以下几种:

  1. 设置缓存不过期。我们项目中的秒杀商品数据没有设置过期时间,所以不会出现缓存中大量的数据同时过期的问题。

  2. 过期时间设置随机值。为了避免给数据设置相同的过期时间,在设置过期时间时,可以增加一点随机值。

原因二

Redis服务挂掉了。即Redis服务发生宕机,无法处理请求,这就会导致全部转移到数据库去,发生雪崩。此时的解决方案一般有以下几种:

  1. 配置Redis高可用。也就是搭建Redis集群,这样即便个别Redis节点下线,整个缓存层依然可以使用。除此之外,还可以在多个机房部署Redis,这样即便是机房死机,依然可以实现缓存层的高可用。这些操作一般由运维人员完成。
  2. 添加熔断机制。即发生雪崩时,暂停对缓存的访问。我们可以监控数据库的压力,如果数据库的请求压力倍增,可以启动熔断机制,暂停对缓存和数据库的访问。等redis服务恢复正常后,再允许访问缓存。
  3. 添加限流机制。暂停对缓存系统的访问,但是对整个业务系统影响很大,导致很多数据不能查看,为了减少这种影响还有另一个方案:请求限流。请求限流就是限制数据库方法的访问量,过多的请求直接拒绝。

为了防止缓存雪崩以及访问量过大时对系统的冲击,我们引入分布式流量防护工具——Sentinel保护我们的系统。

北京市昌平区回龙观镇南店村综合商业楼2楼226室

©2014-2023 百战卓越(北京)科技有限公司 All Rights Reserved.

京ICP备14032124号-2