Redis集群宕机事故问题分析排查
计一次生产一台服务器重启导致 Redis 集群两个实例宕机服务不可用问题分析排查。
Redis 集群宕机导致签权服务异常,进而导致所有服务不可用,其中还包含支付系统,是一次严重的生产事故。
恢复耗时半小时,电话被打爆,高层领导,现场项目经理,销售,测试都紧盯着问题修复。
计一次生产一台服务器重启导致 Redis 集群两个实例宕机服务不可用问题分析排查。
Redis 集群宕机导致签权服务异常,进而导致所有服务不可用,其中还包含支付系统,是一次严重的生产事故。
恢复耗时半小时,电话被打爆,高层领导,现场项目经理,销售,测试都紧盯着问题修复。
缓存已是系统架构中非常重要的组件,特别是在高并发的系统中几乎是不可或缺的。
由于缓存的特性和功能,在某些场景上会存在一些问题,主要是 缓存穿透、缓存雪崩 和 缓存击穿。
缓存是高并发系统的三把利器之一(另两把是 限流、降级),可以说是必不可少的。缓存的主要目的是为了解决磁盘与内存速度差异问题,解决高并发下频繁访问数据库导致磁盘 I/O 压力和 CPU 负载过高问题。
这里所说的缓存是指业务系统的缓存,是将数据缓存在内存中,当下次有相同请求时就直接从内存中取数据返回。
缓存可以在服务端本地,也可以是远程独立的缓存系统,如 Redis,通常本地缓存和远程缓存配合使用。
本篇文章在 Spring 缓存体系上进行扩展和补充,更多可参考 Spring Boot 2实践系列(十):Spring 缓存体系、Spring Boot 2实践系列(十一):Ehcache集成详解和使用、Spring Boot 2实践系列(十二):Spring Data Redis 集成详解和使用 ,官方:Spring Data Redis 。