Конфигурация компонента для автоматического выключателя Resilience4J с использованием Spring Boot

Я хочу переместить свою конфигурацию прерывателя цепи из файла application.yml в некоторый конфигурационный файл java в качестве объявления bean, поскольку он делает файл application.yml большим. Можно ли удалить конфигурацию из файла applciation.yml и использовать аннотацию конфигурации для определения конфигурации автоматического выключателя. У меня есть файл конфигурации java со следующим кодом, например:

@Configuration
@Component
public class CircuitBreakConfig {

  @Bean
  public CircuitBreaker defaultCircuitBreaker() {
    CircuitBreakerConfig circuitBreakerConfig = CircuitBreakerConfig.custom()
      .failureRateThreshold(50)
      .slidingWindowSize(5)
      .waitDurationInOpenState(Duration.ofMillis(6000))
      .recordExceptions(IOException.class, TimeoutException.class,DataIntegrityViolationException.class)
      .build();
  // Create a CircuitBreakerRegistry with a custom global configuration
  CircuitBreakerRegistry circuitBreakerRegistry = 
     CircuitBreakerRegistry.of(circuitBreakerConfig);

  // Get or create a CircuitBreaker from the CircuitBreakerRegistry 
  // with the global default configuration
   return circuitBreakerRegistry.circuitBreaker("default"); 
  }

}

В моем служебном файле я аннотирую метод автоматического выключателя, например

@CircuitBreaker(name = "default", fallbackMethod = "fallback")
    public Employee createEmployeeDefinition(Employee emp)  throws Exception{
        if(Objects.nonNull(sample)){
            return EmployeeRepository.save(sample);
        }
        return null;
    }

    public Employee fallback(Employee emp,Exception ex) throws Exception{
        System.out.println(ex.getClass()+"  "+ex.getMessage() );
        return null;
    }

С этой текущей реализацией я не могу достичь разомкнутого состояния в моем автоматическом выключателе. Пожалуйста, дайте мне несколько советов.


person monesh    schedule 26.03.2020    source источник


Ответы (1)


Установите свойство minimumNumberOfCalls

person Naren    schedule 16.09.2020
comment
Добро пожаловать в SO! Этот ответ очень краток. Не могли бы вы немного рассказать об этом, возможно, на примере кода? Как это решает проблему? Спасибо за разъяснение. - person ggorlen; 17.09.2020