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

问题描述 投票:0回答:1

Consul支持http中的一致性模式参数。根据领事文档,它可以具有默认,一致,清单。我想在我的一个应用程序中更改默认ot STALE的一致性模式。我在提供的spring文档中找不到任何方法。这是否可以使用spring cloud consul配置实现?

spring spring-boot consul spring-cloud-consul
1个回答
1
投票

如果你的用例只是在一个人熬夜之后才开始领事。你可以使用这个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");
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.