如何在 Spring Cloud consul 配置中将一致性模式更改为 Stale

How to change consitency mode to Stale in Spring Cloud consul config

Consul 支持 http 中的一致性模式参数。根据领事文件,它可以有 DEFAULT,CONSISTENT,STALE 。我想在我的一个应用程序中将一致性模式从默认 ot STALE 更改为。我在提供的 spring 文档中没有找到任何方法。使用 spring 云领事配置可以实现吗?

如果你的用例只是一个熬夜后启动consul。您可以使用这个 hack,然后从 Spring boot main 方法调用它。

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");
        }
    }
}