前言
前段时间在整Apollo配置,项目要求将配置文件中不同环境不同值的放到Apollo,其他配置都没有问题,在将eureka的信息放到Apollo上之后,项目启动的时候发现eureka的配置拿不到,报错
原因
后来分析之后发现是启动顺序问题,在启动的时候会先走初始化eureka再读取Apollo的数值,这样就会出现初始化eureka的时候导致初始化失败
解决方法
知道了原因之后,在程序启动初始化的时候就去读取Apollo的值,并放到系统变量中,这样子在初始化eureka的时候就有值了
//Apollo Init.
Config config = ConfigService.getAppConfig();
Set<String> apolloSet = config.getPropertyNames();
for(String propertyName : apolloSet){
String propertyValue = config.getProperty(propertyName,"");
System.setProperty(propertyName,propertyValue);
}
总感觉有点说的不是很清楚,如果有不对的地方,请各位大佬指出