1

我想用编程方法定义一个断路,所以我做了:

@Configuration
public class MyCircuitBreakerConfig {

@Bean
public CircuitBreakerRegistry myRegistry() {
    CircuitBreakerRegistry registry = CircuitBreakerRegistry.ofDefaults();
    registry.circuitBreaker("mycircuit", circuitConfig());
    return registry;
}

问题是,即使它工作正常,我在指标中得到以下信息:

"components" : {
"circuitBreakers" : {
  "status" : "UNKNOWN"
}

同时,如果我在属性文件中定义它:

resilience4j:
 circuitbreaker:
      configs:
        myconfig:
          ...
      instances:
       mycircuit:
          base-config: myconfig

我能看到它。问题可能是什么?我正在使用弹性4j-spring-boot2 依赖项。

4

1 回答 1

1

您不得创建自己的 CircuitBreakerRegistry。Spring Boot AutoConfiguration 创建一个您应该使用的实例。如果您需要它,只需将现有的 CircuitBreakerRegistry 注入(自动装配)到您的代码中。

您可以按如下方式覆盖默认值

resilience4j.circuitbreaker:
    configs:
        default:
            slidingWindowSize: 100
            permittedNumberOfCallsInHalfOpenState: 10
            waitDurationInOpenState: 10000
            failureRateThreshold: 60
            eventConsumerBufferSize: 10
于 2020-04-27T10:06:36.570 回答