跳到主要内容

(四):核心模块CircuitBreaker源码之CircuitBreakerStateMachine

文章目录

  • CircuitBreakerStateMachine

    • 状态转换图
  • 核心流程接口介绍

    • isCallPermitted(判断请求是否允许通过)
    • onSuccess(请求调用成功处理策略)
    • onError(请求调用失败即出现异常处理策略)

CircuitBreakerStateMachine

> 熔断器有限状态器,熔断器核心接口CircuitBreaker的实现类。

先看一段CircuitBreaker 默认接口实现代码

    static <T> Supplier<T> decorateSupplier(CircuitBreaker circuitBreaker, Supplier<T> supplier){
return () -> {
//判断是否允许请求通过,不通过,抛出CircuitBreakerOpenException
CircuitBreakerUtils.isCallPermitted(circuitBreaker);
long start = System.nanoTime();
try {
//反射执行业务代码,并返回结果
T returnValue = supplier.get();
long durationInNanos = System.nanoTime() - start;
//请求处理成功,触发熔断器成功处理策略
circuitBreaker.onSuccess(durationInNanos);