1、微服务架构中,如何管理配置?
1.1 说明
在分布式微服务架构中,配置文件存储到对应的微服务中,
以application.properties或者application.yml形式存在
1.2 问题
管理难度大:每个微服务都需要单独去管理配置
安全性低:配置信息跟随代码一起保存,一旦代码泄露所有配置也都对外泄露
配置维护困难: 配置信息维护困难,修改配置后必须要重启,否则无法生效
局限性:配置的动态调试,日志功能的开关
1.3 解决
为了解决上面的问题,通过我们会引入统一的配置中心来管理配置:
市面上配置中心产品:
1、Nacos 作为注册中心与配置中心
2、Spring Cloud Config 作为配置中心
3、百度 disconf
4、携程的Appollo
Spring Cloud Config 是由Spring Cloud团队原发,对在微服务架构中各个微服务的配置提供统一管理。
2、Spring Cloud Config
2.1 配置中心主要由两块内容组成
Config 服务端:
1. 也成为分布式配置中心,需要单独搭建这个服务端
2. 主要用来连接远程仓库,获取配置信息,并返回给微服务(客户端)
Config 客户端:
1. 具体需要集中式管理配置的微服务,需要配置连接上Config服务端
2. 自动从Config服务端获取配置信息;Config服务端从远程仓库获取配置
3、搭建Config配置中心服务端
3.1 先创建一个Git远程仓库,复制地址
3.2 创建项目,添加依赖
spring-cloud-config-server
spring-cloud-starter-netflix-eureka-client
3.3 创建启动类,添加@EnableConfigServer注解,开启配置中心服务端
3.4 application.yml配置
端口
eureka客户端地址
git远程仓库uri、账号、密码
服务id
3.5 在远程仓库上创建一个文件,存放配置,比如:cinema-member-service-dev.yml
最后在浏览器中访问: http://localhost:6001/cinema-member-service-dev.yml
就可以在浏览器上看到gitee中文件内容
注意:
如果浏览器出现 Unsafe 相关提示,页面空白的,说明端口不安全,换一个端口即可
4、Config配置中心客户端开发
5.1 依赖
spring-cloud-starter-config
5.2 bootstrap.yml配置
spring:
cloud:
config:
uri: http://localhost:6001 # 配置中心服务端
name: cinema-member-service # git上要访问的配置文件
profile: dev # 完整的配置文件 name-dev.yml
label: master # 分支