大型高并发与高可用缓存架构总结3

缓存雪崩解决方案

redis集群彻底崩溃,缓存服务大量对redis的请求等待,占用资源,随后缓存服务大量的请求进入源头服务去查询DB,使DB压力过大崩溃,此时对源头服务的请求也大量等待占用资源,缓存服务大量的资源全部耗费在访问redis和源服务无果,最后使自身无法提供服务,最终会导致整个网站崩溃。

事前的解决方案,搭建一套高可用架构的redis cluster集群,主从架构、一主多从,一旦主节点宕机,从节点自动跟上,并且最好使用双机房部署集群。
事中的解决方案,部署一层ehcache缓存,在redis全部实现情况下能够抗住部分压力;对redis cluster的访问做资源隔离,避免所有资源都等待,对redis cluster的访问失败时的情况去部署对应的熔断策略,部署redis cluster的降级策略;对源服务访问的限流以及资源隔离
事后的解决方案:redis数据做了备份可以直接恢复,重启redis即可;redis数据彻底失败来或者数据过旧,可以快速缓存预热,然后让redis重新启动。然后由于资源隔离的half-open策略发现redis已经能够正常访问,那么所有的请求将自动恢复。

posted on 2019-06-15 15:21  xiaohaigege666  阅读(162)  评论(0编辑  收藏  举报

导航