SpringCloud_Config配置中心

SpringCloud_Config配置中心

传统的管理配置文件是十分复杂的,还需要在配错的时候需要重启服务器。

  1. 分布式配置中心思想
    就是不用重启服务器的情况下,将配置文件中的内容实时的更新到项目中去。
  2. 常见分布式配置中心对比
    Apollo阿波罗 携程写的分布式配置中心,有图形界面管理的配置中心。
    SpringCloud Config 没有后台可管理的分布式配置中心,配置文件信息存放在版本控制器中(git |svn )
    使用zookeeper实现分布式配置中心,持久结点+时间通知
  3. 搭建Git环境存储配置文件(码云)
    1. 分布式配置中心都需要哪些组件
      1. web管理系统—后台可以使用图像界面管理配置文件SpringCloud Config没有图像管理配置文件
      2. 存放分布式配置文件服务器(持久化存储的)----使用版本控制器存放配置文件信息 使用git环境。
      3. ConfigServer缓存 配置文件服务器(临时存储)。
      4. ConfigClient 读取ConfigServer配置文件信息。
    2. 要有一个git | svn服务器 存放持久化配置信息。
      1. git上的文件夹以项目进行区分
      2. 环境如何区分的
        1. dev:开发环境
        2. sit:测试环境
        3. pre:预发布环境
        4. prd:准生产环境
          我只说sit和prd环境
      3. 在git上如何存放配置文件
        1. 第一步搭建git服务器
  4. 搭建ConfigServer配置文件中心
    1. 建立maven工程,将相关依赖导入进去
    2. 在yml中将和git连接配置代码如下:
  ###服务注册到eureka地址
  eureka:
    client:
      service-url:
             defaultZone: http://localhost:8100/eureka
  spring:
    application:
      ####注册中心应用名称
      name: config-server
    cloud:
      config:
        server:
          git:
            ###git环境地址
            uri: https://gitee.com/itmayi/config.git
            ####搜索目录
            search-paths:
              - config  
        ####读取分支      
        label: master
  ####端口号      
  server:
    port: 8888
  在将项目启动目录上加上@EnableConfigServer就可以启动了。
  1. 文件的命名规范问题:存放文件名的规范:以服务名称+环境.properties或者yml结尾。:如member-dev-properties文件。
  2. 现在就建立了一个ConfigServer的缓存服务器。
  3. 现在就可以利用Eureka的注册中心访问config配置文件。
  4. ConfigClient读取ConfigServer配置文件信息
    1. 先导入依赖
    2. 配置一下yml文件代码如下:
  spring:
        application:
          ####注册中心应用名称
          name:  config-client
        cloud:
          config:
          ####读取后缀
            profile: dev
            ####读取config-server注册地址
            discovery:
              service-id: config-server
              enabled: true
      ###eureka服务注册地址    
      eureka:
        client:
          service-url:
                 defaultZone: http://localhost:8100/eureka    
      server:
        port: 8882
  配置文件的具体每个都是干什么的我上面都写了,现在就说一下怎么读取了,在想要获取配置信息的类上面加上私有的变量,之后用@Value来读取git上面的文件信息。
  1. SpringCloudConfig实时刷新配置文件
    1. 现在Client和Server端都已经准备好,如果改变一下git上面的配置文件会不会实时改变系统中的文件信息,如果是直接调用Git和Server中的接口是实时的,但是通过Client端调用Server不是实时的,因为有缓存。
    2. 但是现在不是实时的,有两种方案:(都不用重启服务器)
      1. 手动刷新:需要人工调用接口 读取配置文件步骤如下:
        1. 先导入依赖
        	<dependency>
        		<groupId>org.springframework.boot</groupId>
        		<artifactId>spring-boot-starter-actuator</artifactId>
        	</dependency>
      
      1. 添加yml文件的配置内容如下:
##将所有接口开放
management:
  endpoints:
    web:
      exposure:
        include: "*"
     3. 调用actuator/refresh    必须是post请求才可以
     4. 最后加上一个注解@RefreshScope在要读取git上文件的类上面就可以了。
  2. 消息总线自动刷新
     1. 这个刷新方式以后会写上的。
  1. SpringCloudConfig设计原理分析
    就是在git上拉取信息到ConfigServer这个服务器中,然后将客户端拉取服务器中的配置信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值