1、Config–分布式配置中心
1.1、什么是配置中心?
对于一个微服务架构的应用来说,每一个服务都有自己的一个配置文件,当微服务的数量比较多时,如果修改一些公用的配置,则需要将所有的配置文件都单独进行修改,这对运维人员来说是非常耗时耗力的。那么有没有一种方法,可以将众多微服务中公用的配置信息抽取出来,放到一个地方集中管理,然后各个微服务再去这个地方拉取对应的配置信息,达到公用配置统一管理的目的。所以配置中心就出现了。
1.2、SpringCloud Config
互联网行业常用的配置中心有SpringCloud Config、Alibaba Nacos、携程的Apollo等,这里只说明Config的使用方式。
SpringCloud Config采用C/S架构,为微服务架构中的微服务提供集中化的外部配置支持,分为服务端和客户端。官方文档:
https://cloud.spring.io/spring-cloud-static/spring-cloud-config/2.2.1.RELEASE/reference/html/
服务端:也称分布式配置中心,它是一个独立的微服务应用,用来连接配置服务器并为客户端提供获取配置信息的访问接口。配置服务器默认采用git来储存配置信息,这样有助于对环境配置进行版本控制,并且可以通过git客户端工具来方便的管理和访问配置内容。而Config Server只需要和git配置服务器连接就行了。
客户端:需要获取配置的各个微服务,在启动的时候从服务端获取指定的配置信息。
1.3、Config服务端配置与测试
因为Config Server默认采用git来储存配置信息,所以此处选择github作为储存服务器,并与之整合。
第一步:环境准备
首先,在github上新建springcloud-config仓库并创建如下文件:
注意:一般情况下,我们都是使用application-profile.yml/properties的方式命名配置文件!
配置文件中书写一下测试内容:
#dev环境
config:
info: "master branch,springcloud-config/appname-dev.yml version=1"
#测试环境
config:
info: "master branch,springcloud-config/appname-test.yml version=1"
#生产环境
config:
info: "master branch,springcloud-config/appname-prod.yml version=1"
然后,从github上下载刚才创建好的仓库,命令(SSH方式):
git clone [email protected]:XXXXXX/springcloud-config.git
得到下列目录:
第二步:创建Config Server模块
pom:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
application.yml:
server:
port: 3344
spring:
application:
name: cloud-config-server
cloud:
config:
server:
git:
#配置第一步中创建的仓库地址(http方式)
uri: https://github.com/dengbuquan/springcloud-config.git
#搜索目录
search-paths:
- springcloud-config
#读取分支
label: master
#注册进Eureka
eureka:
client:
service-url:
defaultZone: http://localhost:7001/eureka
主启动类:
@SpringBootApplication