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, это означает, что при возникновении одного сбоя последующие команды, которые выполняются, должны всегда использовать запасной вариант до истечения времени ожидания; Тем не менее, я вижу противоположный случай - сбой не отключает цепь или цепь не отключается независимо от сбоя

0 ответов

Другие вопросы по тегам