本篇源于Spring Cloud Config的一个问题,但这个问题并非所有人都会遇到。如果您遇到了,那必须得看看这篇,如果没有遇到您也应该看看,防患于未然!

问题描述

之前有朋友提出Spring Cloud Config的配置中心在运行一段时间之后,发现修改了配置信息,但是微服务应用并拿不到新的配置内容。同时,发现配置中心存储配置的目录 /tmp 的配置内容被清空了。

原因与解决

首先,分析一下上面的问题,其实已经有一定的线索。表面现象是微服务从配置中心获取配置信息的时候获取不到最新的配置,而其根本原因就是在 /tmp目录下的缓存仓库已经被清空了,所以导致无法正常的通过Git获取到最新配置,那么自然各个微服务应用就无法获取最新配置了。

其实该问题在Spring Cloud的官方文档中也有对应的说明,原文如下:

With VCS based backends (git, svn) files are checked out or cloned to the local filesystem. By default they are put in the system temporary directory with a prefix of config-repo-. On linux, for example it could be /tmp/config-repo-<randomid>. Some operating systems routinely clean out temporary directories. This can lead to unexpected behaviour such as missing properties. To avoid this problem, change the directory Config Server uses, by setting spring.cloud.config.server.git.basedir or spring.cloud.config.server.svn.basedir to a directory that does not reside in the system temp structure.

根据上面的内容,我们可以知道在某些系统中,对于 /tmp目录进行周期性的清理,所以也就有了上面所说的问题。

从文档中我们也已经知道如果去解决该问题,无非就是通过 spring.cloud.config.server.git.basedirspring.cloud.config.server.svn.basedir参数来指定一个不会被定期清理的目录。比如,我们可以设置:

  1. spring.cloud.config.server.git.basedir=config-repo

其他问题

这里需要注意一下,该参数的设置依然有一定的问题。按理解,如上配置的话,应该是在配置中心程序所在的目录下创建一个config-repo目录来进行存储。但是,在测试了Dalston SR1和SR2版本之后,发现该配置只会将内容存储到配置中心程序的同一级目录下,并不会创建一个config-repo目录。

但是,如果我们这样设置,就可以将配置的缓存内容存储在配置中心所在目录下的config-repo目录中了:

  1. spring.cloud.config.server.git.basedir=config-repo/config-repo

推荐阅读

  • Spring Cloud构建微服务架构:分布式配置中心

  • 总是听别人说响应式布局,原来这么简单

  • 《程序员健康指南》读书笔记

  • 博客搭建攻略(三):创造收益

  • 海外IT工程师工作福利揭秘

  • 近期关于Spring Boot/Cloud的文章汇总

更多Spring Boot/Cloud干货请持续关注我的博客(didispace.com)和公众号。

想深入探讨的朋友可以扫描下面二维码加入我的知识星球

Spring Cloud配置中心获取不到最新配置信息的问题相关推荐

  1. Spring Cloud Config的配置中心获取不到最新配置信息的问题

    本篇源于Spring Cloud Config的一个问题,但这个问题并非所有人都会遇到.如果您遇到了,那必须得看看这篇,如果没有遇到您也应该看看,防患于未然! 问题描述 之前有朋友提出Spring C ...

  2. Spring Cloud构建微服务架构:分布式配置中心【Dalston版】

    Spring Cloud Config是Spring Cloud团队创建的一个全新项目,用来为分布式系统中的基础设施和微服务应用提供集中化的外部配置支持,它分为服务端与客户端两个部分.其中服务端也称为 ...

  3. k8s springboot 文件_Springboot整合Spring Cloud Kubernetes读取ConfigMap支持自动刷新配置的教程...

    1 前言 欢迎访问南瓜慢说 www.pkslow.com获取更多精彩文章! Docker & Kubernetes相关文章:容器技术 之前介绍了Spring Cloud Config的用法,但 ...

  4. spring cloud微服务分布式云架构-commonservice-config配置服务搭建

    2019独角兽企业重金招聘Python工程师标准>>> 1. 介绍 Spring Cloud Config为分布式系统中的外部配置提供服务器和客户端支持.使用Config Serve ...

  5. Apollo配置中心热加载mysql_Apollo配置中心介绍

    1.What is Apollo 1.1 背景 随着程序功能的日益复杂,程序的配置日益增多:各种功能的开关.参数的配置.服务器的地址-- 对程序配置的期望值也越来越高:配置修改后实时生效,灰度发布,分 ...

  6. [菜鸟SpringCloud实战入门]第七章:配置中心客户端主动刷新机制 + 配置中心服务化和高可用改造...

    前言 欢迎来到菜鸟SpringCloud实战入门系列(SpringCloudForNoob),该系列通过层层递进的实战视角,来一步步学习和理解SpringCloud. 本系列适合有一定Java以及Sp ...

  7. 解锁新姿势 |如何利用配置中心规范构建PaaS服务配置

    为什么80%的码农都做不了架构师?>>>    摘要: 在上一篇文章中,我们以MQ和ACM为例,讨论了如何借助配置中心对消息进行限流管理的场景.在本文中,我们继续以该场景为例,讲述如 ...

  8. (四)spring cloud微服务分布式云架构-配置中心和消息总线(配置中心终结版)...

    Spring Cloud Bus Spring cloud bus通过轻量消息代理连接各个分布的节点.这会用在广播状态的变化(例如配置变化)或者其他的消息指令.Spring bus的一个核心思想是通过 ...

  9. Spring Cloud构建微服务架构:分布式配置中心(加密解密)

    最近正好想发一篇关于配置中心加密的细节内容,结果发现基础的加密解密居然漏了,所以在这个入门系列中补充一下.后面再更新一下,使用配置中心的一些经验和教训. 在微服务架构中,我们通常都会采用DevOps的 ...

最新文章

  1. CUDA硬件架构知识
  2. CCNA10月27日战报
  3. CentOS 6.x 播放 mp3 音乐 —— 成功
  4. POJ3693 Maximum repetition substring
  5. 定了!10 月 8 日!Jupyter Notebook 原生支持将正式来到 VS Code!
  6. echo字符集 shell_Xshell 能显示中文 但输入的中文都变成了问号
  7. tableau三轴合并_《Tableau数据可视化实战》——1.12节合并不同数据源-阿里云开发者社区...
  8. 本周没有学习,估计用脑过度...
  9. 线程安全问题的本质详解: 原子性、有序性、可见性
  10. idea中ssm自动配置
  11. python 3.0_python基础3.0
  12. usb uvc协议 1
  13. python导入鸢尾花数据集_python数据挖掘学习笔记】十九.鸢尾花数据集可视化、线性回归、决策树花样分析...
  14. 利用MEGA做序列比对
  15. 笔记本电脑触摸板手势命令
  16. 解读丨修身齐家治国平天下
  17. XAML 的摄氏度的符号
  18. 约他没去玩 他却更爱好跟男共事一伏
  19. 架构设计分布式数据结构与算法面试题(2020最新版)
  20. Vue项目上线(阿里云centos7+nginx)

热门文章

  1. 数字货币 矿池 矿场 区别
  2. python3 sys.stdin.readline input 区别
  3. python3 requirements使用方法 ~= >= <
  4. ExAllocatePool函数
  5. Android操作系统11种传感器介绍
  6. Linux C编程--进程介绍3--进程终止和等待
  7. leetcode327 超时大坑
  8. 关于kthreadd
  9. 全国计算机一级ms office考试难吗,全国计算机等级考试一级msoffice难考吗?_联展教育问答...
  10. 简述安装linux至少需要哪两个分区?还有哪些常用分区?,Linux试题