java基础巩固-宇宙第一AiYWM:为了维持生计,架构知识+分布式微服务+高并发高可用高性能知识序幕就此拉开(五:Spring Cloud Config配置中心)~整起

  • 配置中心:Spring Cloud Config
    • 祭出学习方法大招:Spring Cloud Config中文文档:https://www.apiref.com/spring-cloud-zh/dalston/#_spring_cloud_config
    • 当我们的微服务系统开始慢慢地庞大起来,那么多 Consumer 、Provider 、Eureka Server 、Zuul 系统 都会持有自己的配置,这个时候我们在项目运行的时候可能需要更改某些应用的配置,如果我们不进行配置的统一管理,我们只能去每个应用下一个一个寻找配置文件然后修改配置文件再重启应用
      • 对于分布式系统而言我们就不应该去每个应用下去分别修改配置文件,所以我们要找一种 既能对配置文件统一地进行管理,又能在项目运行时动态修改配置文件呢?就是Spring Cloud Config能进行配置管理的框架不止 Spring Cloud Config 一种,还有disconf,阿波罗等等。而且对于 Config 来说有些地方实现的不是那么尽人意】
      • 在应用运行时去更改远程配置仓库(Git)中的对应配置文件,那么依赖于这个配置文件的已启动的应用会不会进行其相应配置的更改,可以的。咱们可以使用 Webhooks ,这是 github 提供的功能,它能确保远程库的配置文件更新后客户端中的配置信息也得到更新。但是Webhooks根本不适合用于生产环境,所以基本不会使用它的。一般我们会使用 Bus 消息总线 + Spring Cloud Config 进行配置的动态刷新。
    • Spring Cloud Config分为服务端【服务配置中心】和客户端【各个服务】,本地只写一些很简单的配置、其余的大量的配置都放到远程【通过config-server连接仓库】,客户端只需要连接config-server从而去获取仓库的信息【各个服务可以通过config-server连接到仓库,获取其中的资源,也就是很多服务的配置信息
      • Spring Cloud Config 为分布式系统中的外部化配置提供服务器和客户端支持使用 Config 服务器,可以在中心位置管理所有环境中应用程序的外部属性【Spring Cloud Config 就是能将各个 应用/系统/模块 的配置文件存放到 统一的地方然后进行管理(Git 或者 SVN)。】。我们的应用只有启动的时候才会进行配置文件的加载,那么我们的 Spring Cloud Config 就暴露出一个接口给启动应用来获取它所想要的配置文件,应用获取到配置文件然后再进行它的初始化工作
      • 比如把咱们的eureka、feigh、ribbon、zuul这些组件的原来的application.xml中的配置都放到spring-cloud-config这个远程仓库中
      • 主要操作步骤:
        • 先在本地写一个比如config-eureka.yml【里面写原来组件们的配置、再加上spring.profile.application.name应对多文档】,到时候这个配置文件就放到仓库,后期用这个来控制其他组件
          • 把本地的文件用Git Bash传到远程仓库:
            • 在你要放配置中心的文件夹下打开Git Bash,其中老规矩,git init、git clone 你的仓库项目所对应的https://…
            • 第一步,先在Gitee或者Github上新建一个仓库,比如叫spring-cloud-config
            • 然后,假如咱们在本地新建了一个配置文件application.yml后,需要执行四条命令,将这个配置文件提交到远程仓库【其实你把其他啥文件提交到仓库也是这四个命令:git add .、git status、git commit -m “commit file is xxx”、git push origin master】
              java基础巩固-宇宙第一AiYWM:为了维持生计,架构知识+分布式微服务+高并发高可用高性能知识序幕就此拉开(五:Spring Cloud Config配置中心)~整起_第1张图片
        • 然后在组件们的application.yml去掉原来组件的功能性配置信息,留一个spring.application.name:写好服务名,再添加一个bootstrap.yml【spring.cloud.config.name:、spring.cloud.config.label:master、spring.cloud.config.profile:dev、spring.cloud.config.url:】去连接远程仓库
        • 然后跟所有组件一样,把组件自己的事处理好之后【pom.xml中配置依赖、写application.xml配置信息、添加配置类、controller中一些内容以及需要加的Spring当时学的一些注解以及@Enable开启组件的注解等等】、客户端你要用Eureka、Spring Cloud Config这些,你在你自己application.yml中写好这些组件的地址,然后你就能找到这些组件愉快的使用了

巨人的肩膀:
凤凰架构~大佬的书,跟深入理解JVM一样值得多次翻阅
B站的各位大佬
JavaGuide
SpringCloud官方文档\中文文档【https://docs.gitcode.net/spring/guide/spring-cloud/spring-cloud-openfeign.html】

你可能感兴趣的:(架构,分布式,config,配置中心)