- 前言
redis是主从加哨兵架构,java服务放在k8s上,使用springboot的actuator来进行健康检查。
故障原因如下,redis因为cpu激增,导致响应慢,断开了和java的连接,正好在k8s健康检查的时间内,检查到java服务不正常,k8s干掉了java服务,导致业务不正常。
- 解决思路
- 首先防止雪崩效应,避免雪球越滚越大,网络波动是我们避免不了的,我们也不能因为这个原因,去加大k8s检查间隙时间或者关闭k8s的健康检查,不能因为丢了西瓜去捡芝麻,所以更合适的解决办法是,springboot去做健康检查的时候,关闭掉对redis的检查,不要因为redis的问题,导致java服务雪崩。
management.health.redis.enabled=false
2.redis cpu激增检查,cpu飙高,我们要分情况来选择合适的方法排查,如果是一直很高,直接查看信息,可能线程死锁了等,如果是一会儿高,一会儿降低,火焰图更适合。
- 先检查redis的慢日志,slowlog get 5,如果有慢日志,使用