如果Apollo客户端缓存不会更新,可以尝试以下解决方法:
ConfigService的getConfig方法时,设置isUseCache参数为false,强制从Apollo服务器获取最新的配置,代码示例如下:Config config = ConfigService.getConfig("yourNamespace", ConfigConsts.NO_APPID, false);
ConfigService的addChangeListener方法时,设置isUseCache参数为false,强制从Apollo服务器获取最新的配置,代码示例如下:ConfigChangeListener listener = new ConfigChangeListener() {
@Override
public void onChange(ConfigChangeEvent changeEvent) {
// 处理配置变更事件
}
};
ConfigService.addChangeListener(listener, "yourNamespace", ConfigConsts.NO_APPID, false);
Config的getProperty方法时,设置isUseCache参数为false,强制从Apollo客户端获取最新的配置,代码示例如下:Config config = ConfigService.getConfig("yourNamespace", ConfigConsts.NO_APPID);
String propertyValue = config.getProperty("yourKey", null, false);
apollo.cacheDir属性为空,让Apollo客户端不使用缓存,代码示例如下:System.setProperty("apollo.cacheDir", "");
Config config = ConfigService.getAppConfig();
以上方法可以用于Java语言的Apollo客户端,其他语言的Apollo客户端也可以根据相应的API进行类似操作。