spring cloud config

一、什么是spring cloud config    

    spring-cloud-config 简单来说就是spring-cloud实现的分布式配置中心.spring-cloud-config分为服务与客户两端。git

    spring-cloud-config 使用git或者svn 甚至是本地的文件系统做为配置文件的仓库。   spring

    spring-cloud-config 用application,profile,label 三个维度来实现分布式配置管理和发布.json

  •   application  : 使用spring-cloud-config服务的客户端名称,每一个配置都是属于某一个应用的
  •   profile :  每一个配置都是区分环境的,如dev, test, prod等
  •   lable  :  就是对同一份配置的不一样版本管理。 若是使用的是git做为配置管理的仓库,label能够是分支名,tag的名称。也就是说对于一个应用的不一样部署实例,能够从服务端获取到不一样版本的配置,这对于一些特殊场景如:灰度发布,A/B测试等提供了很好的支持。

二、使用spring cloud config的缘由

  • 基于应用、环境、版本三个维度管理,主要是版本的支持。
  • 配置存储支持Git、SVN。开发人员都比较熟悉,不须要额外的学习成本。不管SVN或GIT都支持版本和权限管理。
  • 和Spring无缝集成。对全部spring应用程序迁移成本很是低,在配置的获取上彻底一致。
  • 可用于任何语言开发的程序(客户端)。
  • 提供服务端和客户端支持。
  • 集中式管理分布式环境下的应用配置。

三、spring cloud config server

  • 拉取配置时更新 GIT或SVN 仓库副本,保证是最新结果.
  • 支持数据结构丰富,yml, json, properties 等。
  • 配合 eureke 可实现服务发现,配合 cloud bus 可实现配置推送更新。
  • 配置存储基于GIT或SVN仓库,可进行版本管理。
  • 简单可靠,能够实时查看配置文件的最新数据。
  • HTTP服务具备如下格式的资源:
    /{application}/{profile}[/{label}]
    /{application}-{profile}.yml
    /{label}/{application}-{profile}.yml
    /{application}-{profile}.properties
    /{label}/{application}-{profile}.properties

四、spring cloud config client

  • 应用启动后,获取配置文件的顺序:config server>本地。
  • 配置更新
    • GIT或SVN提交更改配置文件。
    • 手动refresh或 cloud bus 可实现配置推送更新或重启config client,config client感知到配置更改。
    • Config Client从Config Server获取到最新的配置,把最新的配置更新到环境中,而且更新已经注入的值。
  • 调用远程配置的类须要标记@RefreshScope,保证同步更新配置。
相关文章
相关标签/搜索