【问题标题】:Get Instance of circuit breaker from configuration file从配置文件中获取断路器实例
【发布时间】:2021-04-08 16:21:45
【问题描述】:

这是我的配置文件。

resilience4j.circuitbreaker:
  instances:
    backendB:
      registerHealthIndicator: true
      slidingWindowSize: 10
      minimumNumberOfCalls: 10
      permittedNumberOfCallsInHalfOpenState: 3
      waitDurationInOpenState: 5s
      failureRateThreshold: 50
      eventConsumerBufferSize: 10

我正在尝试使用 Resilience4jFeign 创建我的 feign 客户端的 bean,但断路器对象是使用默认配置初始化的,顾名思义 CircuitBreaker.ofDefaults。我找不到任何方法将我的断路器实例从配置转换为对象。

    @Bean
    public CommunicationServiceProxy communicationServiceProxy(){
        CircuitBreaker circuitBreaker = CircuitBreaker.ofDefaults("backendB");
        FeignDecorators decorators = FeignDecorators.builder()
                .withCircuitBreaker(circuitBreaker)
                .withFallbackFactory(CommunicationFallBack::new)
                .build();
        return Resilience4jFeign
                .builder(decorators)
                .encoder(new JacksonEncoder())
                .decoder(new JacksonDecoder())

                .target(CommunicationServiceProxy.class, "http://localhost:8081");
    }

【问题讨论】:

    标签: spring-boot spring-cloud-feign circuit-breaker resilience4j openfeign


    【解决方案1】:

    我找到了解决方案,它正在使用 CircuitBreakerRegistry。 而不是使用

    创建注册表
    CircuitBreakerRegistry.ofDefaults()
    

    需要自动装配它们。

            @Autowired
            private CircuitBreakerRegistry circuitBreakerRegistry;
    

    【讨论】:

      猜你喜欢
      • 2018-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-22
      • 1970-01-01
      相关资源
      最近更新 更多