Spring Cloud Config具有中心化、版本控制、支持动态更新和语言独立等特性。使用Config,大致有以下优势:
·提供配置服务器(Config Server)和配置客户端(Config Client)两种角色,便于部署和使用,使开发者可以集中式管理分布式环境下的应用配置。
·配置服务器集中对配置资源进行管理,并支持多种配置资源存储方式,如Git、SVN及文件系统。
·基于Spring环境,与Spring Boot深度整合,在应用中通过几个简单的注解就可以实现配置的统一管理,而不需要过多的投入。
·Spring Cloud Config提供与Spring Boot配置类似的机制,可以非常容易地实现对应用开发环境、测试环境、仿真环境和生产环境的配置、切换和迁移等处理。
·配置服务器可以方便地与Eureka和Consul等进行整合,快速构建一个高可用的配置服务。
Config分为服务端Server和客户端Client。Server作为配置中心的服务端,当配置客户端获取配置时,服务端及时从Git仓库中(默认方式,可调整)获取配置副本,从而保证配置数据为最新,配置文件格式支持yml、json、properties等。
二、示例演示,搭建Config Server
国际惯例,依旧继续沿用上一章的微服务代码,来集成微服务配置中心Config。
创建基于maven的Config项目config-server,在pom文件中主要引入Eureka和Config的依赖。
![](https://img-blog.csdnimg.cn/20190421212816114.png?x-oss-process=image/watermark,type_ZmFuZ3po
《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》
【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享
ZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1NpbXBsZV9ZYW5nZ2Vy,size_16,color_FFFFFF,t_70)
然后在启动类上@EnableConfigServer声明这是一个Config项目,当然,Config配置中心也是要注册到Eureka上的,方便在分布式时可以更加容易的访问。
依旧是配置文件,其实对于Config工程,核心功能就是对配置文件读取,所以重点也是对这项进行配置,spring.cloud.config.server表示对Config的服务端Server进行配置,git表明使用git存放文件,这里使用了我的github,而uri则对应的是git的仓库地址,search-path表示仓库中详细路径,由于这里我使用了公共仓库,所以这里不需要账号密码,server.label属性表示使用的分支,这是使用的就是master。
访问https://github.com/imyanger/springcloud-project.git,进入对应的文件夹p6-config/config-server/config,可以看到文件夹中仅有一个book-server.yml文件,至于文件中的内容,这里简单的配置了一下redis的连接信息。
这样配置中心Config就已经搭建完毕。分别启动eureka-server和刚刚搭建的config-server,config-sever的端口为18050,然后我们在地址栏上输入http://localhost:10850/book-server-dev.yml,发现输出的结果和我们直接查看github是一致的,这说明Config的服务端Server已经成功搭建。
Config的http请求地址和资源文件映射如下:
/{application}/{profile}[/{label}]
/{application}-{profile}.yml
/{label}/{application}-{profile}.yml
/{application}-{profile}.properties
/{label}/{application}-{profile}.properties
三、构建Config Client
上面也说过,Config主要分为服务端Server和客户端Client,而Client即我们的消费者,也就是配置文件的适用方,假设我们要在book-server使用Config的book-server-dev.yml,我们应该怎么做呢?