`
woodding2008
  • 浏览: 289630 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

热点流量引发的雪崩

 
阅读更多

 

计数服务访问情况

Redis计数服务一直运行的比较稳定,国庆期间总体QPS量比较稳定,没有突破历史新高,不过连续两天发生大规模的超时,并导致服务产生雪崩效应,通过紧急降级才免于彻底瘫痪。

 

Mget接口的请求QPS

 

 

场景一

  • 服务多个接口耗时加长,导致下游用户超时严重,产生雪崩效应,导致很多接口不出结果
  • 故障持续了2-3个小时
  • 排查服务运行指标,当时没有看出特别的状况

Redis实例CPU飚高

 

 

部分节点创建新连接数量激增[通常每秒2-3个]

 

redis节点处理请求数量

 

 

场景二

  • 情况与场景一类似
  • 影响时间1小时
  • 细致排查了N多指标,发现个别redis节点上创建新连接数量增多
Redis实例CPU打满
 

部分节点创建新连接数量激增[通常每秒2-3个]

 

请求Redis p99的RT爆涨

 

 

redis节点处理请求数量
 
 

问题归纳

  • Redis缓存用来解决99%的缓存需求,剩余1%的缓存需求还是要有其他方案来解决
  • Redis是单线程模型,请求要顺序来处理,高频访问会导致请求进入等待队列,这会产生大量超时请求
  • 大并发的热点请求超时,没有多级缓存、降级、合并同源的等策略的处理,会把影响范围放大。
  • 同一个Redis实例上CPU使用率飚高,一定是少量Key刷量导致。

 

初步解决方案

  • 增加连接池的minIdle & minIdle & maxTotal减少创建连接开销【临时方案,杯水车薪】
  • 使用类似guava这样的LRU缓存在调用端建立二级缓存用来挡掉高频请求,超时设置3-5秒。

 

 

 

  • 大小: 28.7 KB
  • 大小: 20.8 KB
  • 大小: 27.5 KB
  • 大小: 27.4 KB
  • 大小: 23.6 KB
  • 大小: 27.2 KB
  • 大小: 26.3 KB
  • 大小: 31.6 KB
  • 大小: 26.7 KB
  • 大小: 20.8 KB
分享到:
评论

相关推荐

    Redis热点Key发现及常见解决方案_2.docx

    Redis热点Key问题主要源于数据访问的不均匀性,导致服务器承受过大的压力,进而引发一系列危害,如流量集中、缓存服务崩溃、数据库击穿甚至业务雪崩。热点Key的产生原因主要有两种:一是用户消费的数据远超生产数据...

    缓存穿透,缓存击穿,缓存雪崩解决方案分析.docx

    在流量大时,可能 DB 就挂掉了,要是有人利用不存在的key 频繁攻击我们的应用,这就是漏洞。 解决方案: 1. 采用布隆过滤器,将所有可能存在的数据哈希到一个足够大的 bitmap 中,一个一定不存在的数据会被这个 ...

    如何发现Redis热点Key,解决方案有哪些.docx

    如果某些Key因为其特性或热度被频繁访问,这可能导致特定服务器上的请求量激增,超出该服务器的处理能力,从而引发热点问题。 #### 二、热点Key问题的危害 热点Key问题不仅会影响到系统的响应速度,还可能带来更深...

    Redis扩展:缓存雪崩和缓存穿透问题解决方案.docx

    缓存雪崩可能导致数据库负载过高,进而引发服务不可用。 **原因分析**:缓存雪崩通常发生在以下几种情况: - 大量数据恰好在同一时刻设置相同的过期时间,导致同时失效。 - 缓存服务器发生故障或重启时,导致缓存中...

    如何设计缓存系统:缓存穿透,缓存击穿,缓存雪崩解决方案分析.docx

    这里分享一个简单方案就是讲缓存失效时间分散开,比如我们可以在原有的失效时间基础上增加一个随机值,比如 1-5 分钟随机,这样每一个缓存的过期时间的重复率就会降低,就很难引发集体失效的事件。 缓存击穿 缓存...

    sentinel-dashboard-1.8.0.rar

    4. **热点流量控制**:针对某些热点资源,Sentinel 提供了热点参数流控,可以限制带有特定参数的请求流量,防止因热点资源引发的系统负载过高。 5. **集群流控**:在分布式环境中,Sentinel 支持集群模式的流量控制...

    alibaba-sentine.zip

    4. **热点防护**:针对热点资源,Sentinel提供热点限流功能,防止热点服务引发的雪崩效应,确保系统整体的稳定性。 5. **服务降级**:当资源无法获取或响应时间过长时,Sentinel可以将请求快速失败,避免阻塞线程,...

    alibaba-sentinel

    4. **热点防护**:Sentinel可以识别出系统的热点资源,限制对热点资源的访问,防止因个别热点资源引发的雪崩效应。 5. **资源控制台**:`sentinel-dashboard-1.8.1.jar` 是Sentinel的控制台组件,它提供了图形化的...

    sentinel课件_sentinel_

    Sentinel 还支持热点参数控制,可以对带有特定参数的请求进行限流或降级,防止因热点资源引发的系统压力。例如,在电商场景中,针对同一商品ID的抢购请求可以进行限流,保护系统稳定。 四、系统规则 系统规则是 ...

    微服务限流组件sentinel相关代码落地

    4. **热点防护**:对于某些可能会引发大流量的热点资源,Sentinel提供了热点参数限流,可以防止因个别热点请求导致系统压力过大。 5. **规则动态配置**:Sentinel支持实时动态调整限流、降级规则,无需重启服务即可...

    缓存三大问题及解决方案.docx

    对于高流量的热点数据,当其缓存失效时,大量请求会直接冲击数据库,引发故障。解决方案包括: - **二级缓存**:为热点数据设置额外的缓存层,不同级别的缓存有不同的过期时间。 - **LRU(最近最少使用)算法**:...

    redis优化配置

    然而,如果不进行适当的优化,Redis 可能会出现一些问题,如雪崩、穿透和热点key,这些问题可能导致后端数据库承受巨大压力,甚至崩溃。以下是对这些问题及其优化策略的详细解释: **一、缓存雪崩** 缓存雪崩是指...

    万字解析Redis的三大主流问题及解决方案.docx

    缓存雪崩是指大量缓存在同一时刻失效,造成大量请求同时访问数据库,引发数据库崩溃。解决办法包括:设置不同的过期时间,避免大量Key同时过期;增加缓存的副本,分散访问压力;以及启用限流和降级策略,当缓存出现...

    redis高级视频22

    - **缓存雪崩**:当大量缓存同一时间失效,导致数据库压力剧增,可能引发系统崩溃。解决策略包括设置合理的过期时间、使用随机过期策略、增加缓存容量等。 - **缓存穿透**:恶意或意外请求导致数据库查询的流量...

    缓存一致性问题与解决方案

    - **缓存雪崩**:大量缓存同时失效,导致请求涌向数据库,可能引发连锁效应。可通过设置随机过期时间或使用互斥锁来缓解。 总的来说,解决缓存一致性问题需要综合运用多种策略,包括但不限于缓存策略、并发控制、...

    万亿级数据洪峰下的消息引擎Apache RocketMQ

    2. **分布式系统雪崩**:在高流量下,如果消息处理不及时,可能会引发消息大量堆积,进而引起整个分布式系统的性能下降,甚至崩溃。 为应对这些挑战,RocketMQ采取了以下关键策略: - **低延迟存储**:设计高效的...

    大促多级缓存方案及库存并发操作方案.docx

    然而,由于本地缓存会占用Heap空间,因此需要谨慎管理,避免引发`java.lang.OutOfMemoryError`异常。一般来说,只将访问热度高、频繁访问的数据存入本地缓存,例如热卖商品的详情和库存。对于访问热度低的商品,可以...

    lurk-cache源码.txt

    2. **数据热点分布明显**:如果数据的访问存在明显的热点分布,即某些数据被频繁访问,而其他数据访问较少,则Lruk缓存可以发挥出最大的效用。 3. **对实时性要求不高**:对于那些对数据实时性要求不是特别高的场景...

Global site tag (gtag.js) - Google Analytics