Spring配置中心丢失应用程序配置的问题

最近在使用SpringCloud配置中心的时候 发现配置中心只返回了 application.yml 的配置内容 对应的服务配置丢失了

  • 问题原因

    • 检查 配置中心日志 发现一个报错

      1
      2
      3
      4
      5
      6
      2018-06-28 19:30:01.017  INFO 16602 --- [nio-8083-exec-4] .c.s.e.MultipleJGitEnvironmentRepository : Cannot pull from remote http://git.internal.sixi.com/config-center/open.git, the working tree is not clean.
      2018-06-28 19:30:01.093 INFO 16602 --- [nio-8083-exec-4] s.c.a.AnnotationConfigApplicationContext : Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@18861a78: startup date [Thu Jun 28 19:30:01 CST 2018]; root of context hierarchy
      2018-06-28 19:30:01.094 INFO 16602 --- [nio-8083-exec-4] f.a.AutowiredAnnotationBeanPostProcessor : JSR-330 'javax.inject.Inject' annotation found and supported for autowiring
      2018-06-28 19:30:01.098 INFO 16602 --- [nio-8083-exec-4] o.s.c.c.s.e.NativeEnvironmentRepository : Adding property source: file:/tmp/config-repo-1865022702875722453/application-dev.yml
      2018-06-28 19:30:01.098 INFO 16602 --- [nio-8083-exec-4] o.s.c.c.s.e.NativeEnvironmentRepository : Adding property source: file:/tmp/config-repo-1865022702875722453/application.yml
      2018-06-28 19:30:01.098 INFO 16602 --- [nio-8083-exec-4] s.c.a.AnnotationConfigApplicationContext : Closing org.springframework.context.annotation.AnnotationConfigApplicationContext@18861a78: startup date [Thu Jun 28 19:30:01 CST 2018]; root of context hierarchy
    • 由此可知 是因为使用了Git配置 但是git的工作目录存在修改 无法拉取最新的配置 从而使用缓存导致的

  • 解决方案
    • 删除临时目录的 Git 仓库 让配置中心重新拉取
    • 执行 rm -rf /tmp/config-repo-1865022702875722453 (此目录请参照日志提示)