目录

  • 概述
  • Git环境搭建
  • 服务端连接配置
  • 客户端连接配置
  • 知识回顾
一、概述

分布式系统面临的问题

  • 微服务意味着要将单体应用中的业务拆分成一个个子服务,每个服务的粒度相对较小,因此系统中会出现大量的服务,由于每个服务需要必要的配置信息才能运行,所以一套集中式的,动态配置管理设施是必不可少的
  • SpringCloud提供了ConfigServer来解决这个问题,我们每一个微服务都带着一个application.yml,将所有的配置放到云端配置中心去,然后每个微服务去读取在这里插入图片描述
  • SpringCloud Config 为微服务架构中的微服务提供集中化的外部配置支持,配置服务器为各个不同的微服务应用的所有环节提供一个中心化的外部配置
  • 分为 服务端、客户端 两部分
  • 服务端:分布式配置中心,它是一个独立的微服务应用(和其他微服务同级),用来连接配置服务器并为客户提供配置信息、加密、解密信息等访问接口
  • 客户端:通过指定的配置中心来管理应用资源,以及与业务相关的配置内容,并在启动的时候从配置中心获取加载配置信息。配置服务器默认采用git来存储配置信息,这样有助于解决对环境配置进行版本管理。并且可以通过git客户端工具来方便的管理和访问配置内容

SpringCloud Config能干什么

  • 集中式管理配置文件
  • 不同环境,不同配置,动态化的配置更新,分环境部署,比如/dev、/test、/prod …
  • 运行期间动态调整,不再需要每个服务部署机器上编写配置文件,服务会像配置中心统一拉取配置自己的信息
  • 当配置发生变化是,服务不需要重启,即可感知配置变化,热部署
  • 将配置信息一REST接口的形式暴露
  • 简单理解就是 微服务的客户端、服务端 都去github仓库读取配置文件,我们在本地可以修改配置文件
二、搭建git环境

创建一个本地仓库springcloud-config,创建application.yml文件,绑定远程仓库

在这里插入图片描述
然后push

在这里插入图片描述

三、服务端连接配置

参考:https://www.springcloud.cc/spring-cloud-config.html

基本步骤

  • 创建maven子模块springcloud-config-server-3344

  • 导依赖

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-config-sevrer</artifactId>
        <version>1.4.6.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
       
    </dependency>
    
    
  • 编写配置
    在这里插入图片描述

  • 主类注解开启@EnableConfigServer

  • 测试
    在这里插入图片描述

四、客户端连接配置

理解

  • 客户端微服务需要 访问 服务端微服务 的链接,通过中介的方式 在从github上获取配置信息
  • 通过客户端服务,在controller可以rest风格从代码中读取github的配置信息
  • 客户端可以服务provider(服务提供者),服务端可以服务客户端

基本步骤

  • 在本地springcloud-config下创建config-client.yml,编辑客户端微服务配置信息, 客户端需要连接Eureka,配置注册中心的地址,然后推送到远程

    spring:
      profiles:
        active: dev
        
    ---
    #   spring的配置
    server:
        port: 8201
    spring:
        profiles: dev
        application:
            name: springcloud-provider-dept
            
            
    #   Eureka的配置,服务注册到哪里
    eureka:
        client:
            service-url:
                defaultZone: http://localhost:7001/eureka/
                
    ---
    #   spring的配置
    
    server:
        port: 8202
    spring:
        profiles: test
        application:
            name: springcloud-provider-dept
            
            
    #   Eureka的配置,服务注册到哪里
    eureka:
        client:
            service-url:
                defaultZone: http://localhost:7001/eureka/
                
    
    
    
    
    
  • 新建maven子工程springcloud-config-client-3355

  • 导依赖
    在这里插入图片描述

  • 配置,bootstrap.yml(系统级别的配置,用于配置连接服务端获取配置的配置)和application.yml(用户级别的配置)
    在这里插入图片描述

  • 编写rest风格的cotroller测试
    在这里插入图片描述

  • 开启主类

五、知识回顾

在这里插入图片描述

在这里插入图片描述

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐