resilience4j(四):核心模块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);
               

版权声明:本文不是「本站」原创文章,版权归原作者所有 | 原文地址: