在互联网中,可能存在某一个微服务在某个时刻压力变大导致服务响应过慢,甚至出现故障,导致服务不能响应。这里假设用户user微服务请求中出现压力过大,服务响应速度变慢,进入瘫痪状态,而这时产品微服务product还是正常响应。但是如果产品微服务product大量调用用户微服务user,就会出现大量的等待,如果还是持续的调用,则会造成大量请求积压,导致产品微服务最终也不可用。
由此可见,在分布式系统中,如果一个服务不可用,而其它微服务还大量地调用这个不可用的微服务,也会导致其自身不可用,而后又可能继续蔓延到其它与之相关的微服务上,这样就会导致更多的微服务不可用,最终导致分布式服务瘫痪。
为了防止这样的蔓延,我们需要在微服务架构中加入断路器,它如同电路中的保险丝,如果电路电流过大,那么保险丝就会熔断,从而保证用电的安全。这样,当微服务系统之间大量调用可能导致服务消费者自身出现瘫痪的情况下,断路器就会将这些积压的大量请求熔断,来保证自身服务可用,而不用蔓延到其它服务上。通过这样的断路机制可以保持各个微服务持续可用。



