1、微服务架构中,如何管理配置?

    1. 1.1 说明
    2. 在分布式微服务架构中,配置文件存储到对应的微服务中,
    3. application.properties或者application.yml形式存在
    4. 1.2 问题
    5. 管理难度大:每个微服务都需要单独去管理配置
    6. 安全性低:配置信息跟随代码一起保存,一旦代码泄露所有配置也都对外泄露
    7. 配置维护困难: 配置信息维护困难,修改配置后必须要重启,否则无法生效
    8. 局限性:配置的动态调试,日志功能的开关
    9. 1.3 解决
    10. 为了解决上面的问题,通过我们会引入统一的配置中心来管理配置:
    11. 市面上配置中心产品:
    12. 1Nacos 作为注册中心与配置中心
    13. 2Spring Cloud Config 作为配置中心
    14. 3、百度 disconf
    15. 4、携程的Appollo
    16. Spring Cloud Config 是由Spring Cloud团队原发,对在微服务架构中各个微服务的配置提供统一管理。

    2、Spring Cloud Config

    1. 2.1 配置中心主要由两块内容组成
    2. Config 服务端:
    3. 1. 也成为分布式配置中心,需要单独搭建这个服务端
    4. 2. 主要用来连接远程仓库,获取配置信息,并返回给微服务(客户端)
    5. Config 客户端:
    6. 1. 具体需要集中式管理配置的微服务,需要配置连接上Config服务端
    7. 2. 自动从Config服务端获取配置信息;Config服务端从远程仓库获取配置

    3、搭建Config配置中心服务端

    1. 3.1 先创建一个Git远程仓库,复制地址
    2. 3.2 创建项目,添加依赖
    3. spring-cloud-config-server
    4. spring-cloud-starter-netflix-eureka-client
    5. 3.3 创建启动类,添加@EnableConfigServer注解,开启配置中心服务端
    6. 3.4 application.yml配置
    7. 端口
    8. eureka客户端地址
    9. git远程仓库uri、账号、密码
    10. 服务id
    11. 3.5 在远程仓库上创建一个文件,存放配置,比如:cinema-member-service-dev.yml
    12. 最后在浏览器中访问: http://localhost:6001/cinema-member-service-dev.yml
    13. 就可以在浏览器上看到gitee中文件内容
    14. 注意:
    15. 如果浏览器出现 Unsafe 相关提示,页面空白的,说明端口不安全,换一个端口即可

    4、Config配置中心客户端开发

    1. 5.1 依赖
    2. spring-cloud-starter-config
    3. 5.2 bootstrap.yml配置
    4. spring:
    5. cloud:
    6. config:
    7. uri: http://localhost:6001 # 配置中心服务端
    8. name: cinema-member-service # git上要访问的配置文件
    9. profile: dev # 完整的配置文件 name-dev.yml
    10. label: master # 分支