Hystrix - каково ожидаемое поведение при сбое команды и пороге ошибки, равном нулю
Команда использует эти свойства:
private static final int CIRCUIT_FAILURE_COOLDOWN = (int) Duration.ofMinutes(5).toMillis();
private static final int RATE_OF_FAILURES_TO_SUCCESS = 0;
private static final int COMMAND_EXECUTION_TIMEOUT = (int) Duration.ofMillis(300).toMillis();
private static final HystrixCommandProperties.Setter COMMAND_PROPERTIES =
HystrixCommandProperties.Setter()
.withExecutionTimeoutEnabled(true)
.withExecutionTimeoutInMilliseconds(COMMAND_EXECUTION_TIMEOUT)
.withCircuitBreakerEnabled(true)
.withCircuitBreakerErrorThresholdPercentage(RATE_OF_FAILURES_TO_SUCCESS)
.withCircuitBreakerSleepWindowInMilliseconds(CIRCUIT_FAILURE_COOLDOWN)
.withCircuitBreakerForceClosed(true)
.withFallbackEnabled(true);
Мой вопрос: что нам ожидать в случае последующих неудач? Например, если первый запрос не удался, следует ли ожидать, что цепь отключится?
Почему или почему нет?
Я в недоумении от ожидаемого поведения. Я ожидаю, поскольку, поскольку я объявил, что порог ошибки цепи равен 0, это означает, что при возникновении одного сбоя последующие команды, которые выполняются, должны всегда использовать запасной вариант до истечения времени ожидания; Тем не менее, я вижу противоположный случай - сбой не отключает цепь или цепь не отключается независимо от сбоя