转载https://www.jianshu.com/p/acfb4ac2b124
服务雪崩的过程
上面是一组简单的服务依赖关系A,B服务同时依赖于基础服务C,基础服务C又调用了服务D
服务D是一个辅助类型服务,整个业务不依赖于D服务,某天D服务突然响应时间变长,导致了核心服务C响应时间变长,其上请求越积越多,C服务也出现了响应变慢的情况,由于A,B强依赖于服务C,故而一个无关紧要的服务却影响了整个系统的可用。
雪崩是系统中的蝴蝶效应导致其发生的原因多种多样,有不合理的容量设计,或者是高并发下某一个方法响应变慢,亦或是某台机器的资源耗尽。从源头上我们无法完全杜绝雪崩源头的发生,但是雪崩的根本原因来源于服务之间的强依赖,所以我们可以提前评估,做好熔断,隔离,限流。
扇出
上图A ,B调用C,C调用D就是所谓的扇出,如果扇出某条链上(D)响应过长或者不可用,会造成对A,B 的调用会越来越占用更多的资源,最终引起系统崩溃(服务雪崩)