在微服务场景中,通常会有很多层的服务调用。如果一个底层服务出现问题,故障会被向上传播给用户。我们需要一种机制,当底层服务不可用时,可以阻断故障的传播。这就是断路器的作用,它是系统服务稳定性的最后一重保障。

在Spring Cloud中断路器组件就是Hystrix。Hystrix也是Netflix套件的一部分。它的功能是,当对某个服务的调用在一定的时间内(默认10s,由metrics.rollingStats.timeInMilliseconds配置),有超过一定次数(默认20次,由circuitBreaker.requestVolumeThreshold 配置)并且失败率超过一定值(默认50%,由circuitBreaker.errorThresholdPercentage 配置),该服务的断路器会打开。