一、异常描述
spring cloud config成功注册到注册中心,对外正常提供服务后,过了若干天(有时几天,有时数十天不等)后,应用服务从spring cloud config项目拉取配置时报异常,报读取不到配置,但注册中心发现spring cloud config服务是正常的,spring cloud config有异常信息如下。重启spring cloud config项目后一切恢复正常。
二、异常日志
三、分析原因
spring-cloud-config 服务启动后,从git(或svn等,视配置而定)拉取项目的配置到本地服务器设定的某个目录下缓存起来,其他应用需要读取配置时,spring cloud config服务从本地服务器的指定目录下读取缓存配置提供给消费者。
spring-cloud-config 默认将配置检出到系统(linux)的/tmp目录下,如果系统清除了/tmp目录下的文件,就会导致spring-cloud-config配置项目失效,无法对外提供配置服务。
四、解决方案
在spring cloud config项目中设置**spring.cloud.config.server.git.basedir**
or **spring.cloud.config.server.svn.basedir**
,修改默认的basedir,确保该目录不会被修改。
附:官网解释