Как изменить режим согласования на Stale в конфиге Spring Cloud. - PullRequest
0 голосов
/ 10 января 2019

Консул поддерживает параметр режима согласованности в http. В соответствии с документацией консула, он может иметь ПО УМОЛЧАНИЮ, ПОСТОЯННОМУ ПРОДАЖУ. Я хочу изменить режим согласованности по умолчанию на STALE в одном из моих приложений. Я не нашел никакого способа в предоставленной весенней документации. Это достижимо, используя конфигурацию консольного источника Spring Cloud?

1 Ответ

0 голосов
/ 25 апреля 2019

, если ваш вариант использования - запуск консула только после того, как остался только один. Вы можете использовать этот хак, а затем вызвать его из основного метода загрузки Spring.

public static void changeConsistencyModeToStale() {
    for (Field field : QueryParams.class.getFields()) {
        if ("DEFAULT".equals(field.getName())) {
            try {
                field.setAccessible(true);
                Field modifiersField = Field.class.getDeclaredField("modifiers");
                modifiersField.setAccessible(true);
                modifiersField.setInt(field, field.getModifiers() & ~Modifier.FINAL);
                field.set(null, new QueryParams(ConsistencyMode.STALE));
            } catch (NoSuchFieldException | IllegalAccessException e) {
                log.error("Error while try to set stale mode to consul", e);
            }

            log.info("Consistence mode has been set to stale successfully");
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...