SpingCloud Config 实战

SpringCloud Config 为微服务加购中的微服务提供集中化的外部配置支持,配置服务器为各个不同微服务应用的所有环境提供了一个中心化的外部配置

怎么玩儿

SpringCloud Config 分为服务端和客户端两部分

  • 服务端也成为分布式配置中心,它是一个独立的微服务应用,用来连接配置服务器并未客户端提供配置信息,加密/解密信息等访问接口
  • 客户端则是通过制定配置中心来管理应用资源,以及与业务相关的配置内容,并在启动的时候从配置中心获取和加载配置信息配置服务器默认采用git来存储配置信息,这样就有助于环境配置进行版本管理,并且可以通过git客户端工具来方便的管理和访问配置内容.

能干嘛

  • 集中管理配置文件
  • 不同环境不同配置,动态化的配置更新,分环境不熟比如/dev/test/prod/beta/release
  • 运行期间动态调整配置,不再需要每个服务不熟的机器上编写配置文件,服务回想配置中心统一拉去配置自己的信息
  • 当配置发生变动时,服务不需要重启即可感知到配置的变化并应用新的配置
  • 将配置信息已REST接口的形式暴露

怎么用

  1. 主启动类添加@EnableConfigServer
  2. github上建立项目,分支,配置文件

读取规则

/{lable}/{application}-{profile}.yml

/分支/名字-环境.yml

服务端

server:
  port: 3344

spring:
  application:
    name: cloud-config-center
  cloud:
    config:
      server:
        git:
          uri: https://github.com/xuzimu12345/zimu_mac.git
          #### 搜索目录
          search-path:
            - zimu_mac
      ### 读取分支
      label: master


eureka:
  client:
    service-url:
      defaultZone: http://localhost:7001/eureka

客户端

spring:
  application:
    name: config-client
  cloud:
    #config客户端配置
    config:
      label: master #分支名称
      name: config # 配置文件名称
      profile: dev # 读取后缀名称,及环境名字 -例如: master分支上的config-dev.yml
      uri: http://localhost:3344 #配置中心服务端地址

动态刷新

再客户端添加actuator 监控


        
            org.springframework.boot
            spring-boot-starter-actuator
        

配置暴露端点

## 暴露监控端点
management:
  endpoints:
    web:
      exposure:
        include: "*"

再具体业务类controller添加注解
@RefreshScope

需要运维去发送指定请求,去激活刷新动态配置

http://localhost:3355/actuator/refresh

你可能感兴趣的:(SpingCloud Config 实战)