Spring cloud Config是提供统一管理配置,进行配置的集中管理;把不同的环境进行不同的配置,比如开发、测试、演示、生产环境进行单独配置和管理,全球维护;也提供运行期间动态调整配置,比如说每天的流量较大,就需要把配置调整大一些;可以提供自动刷新,就是配置完成之后,就可以直接生效,当然,这些功能Zookeeper也可以提供。
Spring cloud Config 为分布式系统外部化配置提供了服务器端与客户端的支持,它包括Config Server 和Config Client两部分,由于Spring Server 和Config Client都实现了对Spring Environment和PropertySource抽象的映射,因此,Spring Cloud Config非常适合Spring应用程序,当然也可以与任何语言编写的应用程序配合实用。
Config Server是一个横向扩展、集中式的配置服务器,它用于集中管理应用程序各个环境下的配置,默认使用Git存储配置内容(也可以使用Subversion,本地文件系统或Vault存储配置),因此可以很方便地实现对配置的版本控制和内容审计。
Config Client是Config Server的客户端,用于操作存储在Config Server中的配置属性。
Spring Cloud Confg 架构图:
1、对于Config Server如何访问
Config Server访问是这样规定的:
说明:lable是指GIt中的版本,默认是master
application是应用的名字,是你配置的server.application.name
profile是定义的高可用的时候指定的名字,其实也是高可用的服务器的名字。
![](/qrcode.jpg)
2、Config server配置文件加载顺序
首先加载bootstrap.*里面的配置,然后再链接Config Server,然后加载远程配置(Git仓库的配置),最后加载Application.*的配置
3、Spring Cloud Config加解密
首先从Oracle官网中下载JCE里面还有两个Lib包,然后覆盖JDK中安全包,如下图:
然后在SpringBoot工程application.yml中加入这个encrypt.key: foo,其中foo是加密引子。
对于加密的密文要这样存放在YML文件中如下图;
注意:用Properties属性文件时,密文是不带有引号的。
注意:对于使用YML时,密文需要加引号
4、Spring Cloud Config配置自动更新
Spring cloud Config要与RabbitMq 或者Kafka一块工作,才能使用配置自动 更新。
RbbitMq是采用Erlang开发的一个款消息队列。所以安装RabbitMq之前需要先安装ERLang的二进制安装程序。