断路器状态流转过程:
- 断路器初始状态为 CLOSED,此时服务可用正常调用;
- 当调用失败的次数达到阈值时,熔断状态从 CLOSED 切换到 OPEN 状态。一般在实现时,如果调用成功一次,就会重置调用失败次数;
- 当断路器处于 OPEN 状态时,我们会启动一个超时计时器,当计时器超时后,状态切换到 HALF_OPEN 半打开状态。你也可以通过设置一个定时器,定期地探测服务是否恢复;
- 在断路器处于 HALF_OPEN 状态时,请求可以达到后端服务,如果累计一定的成功次数后,状态切换到 CLOSED;如果仍然出现调用失败的情况,则重新切换到 CLOSED 状态。
状态流转如图: