Я хочу использовать запасной вариант в случае сбоя, поэтому поведение в «открытом» состоянии должно состоять в том, чтобы вызывать запасной вариант вместо выдачи исключения.
Проблема в том, что вызывается запасной вариант во время «закрытого» состояния , в то время как для «открытого» состояния я все еще получаю исключение. Это предполагаемое поведение? Нет способа добиться того, что я ищу?
Я определил свой пользовательский разрыв цепи:
resilience4j:
circuitbreaker:
configs:
default:
register-health-indicator: true
slidingWindowSize: 10
minimumNumberOfCalls: 2
permittedNumberOfCallsInHalfOpenState: 2
automaticTransitionFromOpenToHalfOpenEnabled: true
waitDurationInOpenState: 20s
failureRateThreshold: 20
slowCallDurationThreshold: 2s
slowCallRateThreshold: 20
instances:
backendA:
base-config: default
Теперь я определил свой метод следующим образом:
public class ExampleService {
@CircuitBreaker(name = "default", fallbackMethod = "fall")
public List<String> doSomething(Long id) {
return Arrays.asList("a", "b", "c");
}
private List<String> fall(Long id, Exception ex) {
return Arrays.asList("faaaallingggg");
}
}