Consul在http中支持一致性模式参数。根据领事文档,它可以具有DEFAULT,CONSISTENT,STALE。我想在我的一个应用程序中从默认OT STALE更改一致性模式。在提供的spring文档中找不到任何方式。使用Spring Cloud Consul配置可以实现吗?
答案 0 :(得分: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");
}
}
}