总结一点:服务器雪崩一般是指 主业务不依赖的某些辅助类服务变得不可靠进而导致主业务所调用的核心服务受牵连直至各个上游依赖者连同崩溃的现象。如:
假设核心服务1、核心服务2依赖核心服务3,而核心服务3又会调用辅助服务4,如下图:
假设某天这个辅助类服务4开始变得不可靠(服务器磁盘IO、网络IO压力过大、宕机等),导致响应时间变长,那么这时候核心服务3的服务器对于辅助服务4的请求就有可能会越积越多,这样就会导致核心服务3的响应也一并开始变慢,而核心服务1、核心服务2也强依赖于核心服务3,这样就会出现一个无关核心业务的辅助类服务就影响了整个系统的可用。
雪崩是系统中的蝴蝶效应导致其发生的原因多种多样,有不合理的容量设计,或者是高并发下某一个方法响应变慢,亦或是某台机器的资源耗尽。从源头上我们无法完全杜绝雪崩源头的发生,但是雪崩的根本原因来源于服务之间的强依赖,所以我们可以提前评估,做好 熔断,隔离,限流。