我想在失败的情况下使用回退,因此“打开”状态下的行为应该是调用回退而不是抛出异常。
问题是在“关闭”状态期间调用了回退,而对于“打开”状态我仍然得到异常。这是预期的行为吗?没有办法达到我正在寻找的东西?
我已经定义了我的自定义断路:
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");
}
}