MST

星途 面试题库

面试题:缓存设计之高级难度:缓存穿透与配置中心安全性

假设基于缓存的配置中心遭遇缓存穿透问题,可能会对系统造成什么影响?请提出至少两种有效的解决方案,并分析其适用场景。
17.6万 热度难度
后端开发缓存设计

知识考点

AI 面试

面试题答案

一键面试

缓存穿透的影响

  1. 增加后端压力:大量不存在的数据请求绕过缓存直接访问后端数据源,可能导致后端服务负载过高,甚至崩溃。
  2. 影响系统性能:由于每次请求都需查询后端,响应时间变长,降低系统整体性能。
  3. 可能引发连锁反应:后端过载可能影响依赖它的其他服务,引发级联故障。

解决方案及适用场景

  1. 布隆过滤器
    • 原理:使用布隆过滤器来存储所有可能存在的键。当请求到来时,先通过布隆过滤器判断该键是否可能存在,若不存在则直接返回,避免访问后端。
    • 适用场景:适用于数据量较大且数据相对固定的场景。例如配置中心的数据变动频率较低,适合使用布隆过滤器,可有效拦截大部分不存在的请求,减少后端压力。
  2. 缓存空值
    • 原理:当后端查询到数据不存在时,也将空值缓存起来,并设置一个较短的过期时间。下次相同请求到来时,直接从缓存获取空值,避免重复查询后端。
    • 适用场景:适用于数据存在一定的变动性,但变动频率不是极高的场景。比如配置中心偶尔会新增配置项,缓存空值能在一定时间内防止穿透,同时又不会因长期缓存空值而影响新数据的写入。