场景
微服务会划分出多个模块,模块之间的调用频率可能比较高,这时可能会存在服务雪崩(一个服务失败,导致整条链路的服务都失败的情形)的,如图:
随着时间的推移,从刚开始的C不可用变成了最终的系统不可用,此时,我们应该寻找容错的办法来避免雪崩效应。
容错的措施
1.设置超时:设置访问超时时间,超时后返回错误
2.限流:限制访问的流量
3.舱壁模式:设置多个线程池来分散流量
4.断路器模式:采用一个中间服务,如果A服务访问某个服务失败一定的次数,中间服务就开启,并停止A继续访问某服务,一段时间后中间服务关闭,A服务再次访问某服务,如此往复。着重解释断路器的三态转换,理解断路器的优势