最近在学习使用apollo,发现有不少优点,使用这个产品可以取代之前查表的方式去获取生产环境中动态设置的系统参数。这样就减少了数据库的访问次数。
同时apollo也在本机如下位置生成一个存储配置值的文件。该文件名由appid+cluster+namespace三者的名字拼接而成。

使用方式多种多样,而且较为方便。我是采用的这种属性获取方式。
@Value("${poolSize:100}")
public String pollSize;
以下是用来测试的main方法
public static void main(String[] args) {
System.setProperty(“env”, “DEV”);
System.setProperty(“app.id”, “2019080101”);
System.setProperty(“apollo.cluster”, “default”);
System.setProperty(“apollo.meta”, “http://192.168.8.129:8080”);
Config config = ConfigService.getAppConfig(); //config instance is singleton for each namespace and is never null
String someKey = “dataSize”;
String someDefaultValue = “1000”;
String value = config.getProperty(someKey, someDefaultValue);
System.out.println(“poolSize大小是:”+value);
config.addChangeListener(new ConfigChangeListener() {
@Override
public void onChange(ConfigChangeEvent changeEvent) {
System.out.println("Changes for namespace " + changeEvent.getNamespace());
for (String key : changeEvent.changedKeys()) {
ConfigChange change = changeEvent.getChange(key);
System.out.println(String.format(“Found change - key: %s, oldValue: %s, newValue: %s, changeType: %s”, change.getPropertyName(), change.getOldValue(), change.getNewValue(), change.getChangeType()));
}
}
});
// while (true) {
//
// }
}