什么是缓存雪崩
缓存层如宕机或其他情况时导致不可用,流量达到后端,导致后端服务负载过高,引起异常。
示例图:
解决方案
- 保证缓存层服务高可用性
如 Redis Sentinel、Redis Cluster 均可实现高可用方案,即使个别件节点、机器、甚至机房宕掉,依然可提供服务。
- 依赖隔离组件为后端限流并降级
思路如推荐系统:当个性化推荐系统服务不可用,可使用热点数据进行补充,不至于前端展示异常。
同样如 Redis 、MySQL 等,当 Redis 服务不可用,可通过其他组件(如二级缓存、API网关限流等)机制进行保护后端服务。
- 提前演练
提前演练缓存层宕机后,后端服务负载情况及可能出现的问题,进行预案处理。