假设存在如下调用链
而此时,Service A
的流量波动很大,流量经常会突然性增加!那么在这种情况下,就算Service A
能扛得住请求,Service B
和Service C
未必能扛得住这突发的请求。
此时,如果Service C
因为抗不住请求,变得不可用。那么Service B
的请求也会阻塞,慢慢耗尽Service B
的线程资源,Service B
就会变得不可用。紧接着,Service A
也会不可用,这一过程如下图所示
如上图所示,一个服务失败,导致整条链路的服务都失败的情形,我们称之为服务雪崩