SpringCloud----Config配置中心

概述

  • 用来维护和管理配置文件
  • nacos提供了服务的注册中心(服务的注册和发现)和配置中心
  • 而eureka只提供了服务的注册,需要单独进行springcloud的config配置
  • nacos的配置数据是存在数据库中,而config配置中心就比较灵活, 可以存在数据库、本地文件、Git仓库中(默认是存在Git仓库中)

创建config子工程

image-20211213204054562

添加依赖

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-config-server</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>

配置yml

server:
  port: 6001

spring:
  application:
    name: config-server
  cloud:
    config:
      server:
        git:
          uri: https://gitee.com/benwang6/cgb2107
          search-paths: springcloud1/config

eureka:
  client:
    service-url:
      defaultZone: http://eureka1:2001/eureka, http://eureka2:2002/eureka
  • 其中:
    • uri: 为远程仓库地址
    • search-paths: config文件夹路径
  1. 本次测试将配置数据保存到Git远程仓库

  2. 新建config文件夹,将item、user、order的yml配置文件复制到config文件夹中

  3. 修改名字为一下

image-20211118171947269

  1. 上传到远程仓库

  2. 通过config服务访问item的dev

    • localhost:6001/item-service/dev

    • 说明成功了

添加item、user、order的依赖

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-config</artifactId>
        </dependency>

修改item、user、order的yml文件

  1. 注释掉application的文件

  2. 新建bootstrap文件

  3. 添加配置

    •   # 链接注册表, 获得配置中心的地址, 再从配置中心下载 user-service-dev.yml
        eureka:
          client:
            service-url:
              # 可以从云服务商购买不同地点的 eureka 服务器
              # 这里可以改成服务商提供的地点
              # 自己的服务器只能用 defaultZone
              defaultZone: http://eureka1:2001/eureka, http://eureka2:2002/eureka
        
        spring:
          cloud:
            config:
              discovery:
                enabled: true  # 允许使用服务发现, 去发现配置中心
                service-id: config-server  # 服务ID
              name: item-service  # 文件名
              profile: dev
      

测试

  1. 启动item、user、order服务

  2. 查看启动日志会发现从Git远程仓库下载配置

    image-20211213204118367

BUS 配置刷新

消息总线, 动态配置刷新, 通过配置中心 MQ 服务发送一个刷新指令, 其他配置中心客户端接收指令, 执行配置刷新

添加依赖

02/03/04/09

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-amqp</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-bus</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-stream-binder-rabbit</artifactId>
        </dependency>

09单独添加

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

修改 yml 配置

  1. 添加 09 的 yml 配置

    spring:
      rabbitmq:
        host: 192.168.64.140
        port: 5672
        username: admin
        password: admin
        virtual-host: /   # 设置空间, 默认的可以不加
    
    eureka:
      client:
        service-url:
          defaultZone: http://eureka1:2001/eureka, http://eureka2:2002/eureka
    
    management:
      endpoints:
        web:
          exposure:
            include: bus-refresh
    
  2. 添加 config 文件夹 yml

    spring:
      rabbitmq:
        host: 192.168.64.140
        port: 5672
        username: admin
        password: admin
        virtual-host: /   # 设置空间, 默认的可以不加
    
    eureka:
      client:
        service-url:
          defaultZone: http://eureka1:2001/eureka, http://eureka2:2002/eureka
    
    management:
      endpoints:
        web:
          exposure:
            include: bus-refresh
    
    
    1. 提交 config 配置到远程仓库 (因为此项目配置中心数据是保存到远程仓库)

    测试

    检查
    1. 控制台连接 6001 的日志

      image-20211213204128089

    2. RabbitMQ 服务器查看

      image-20211213204135256

      image-20211213204142451

配置刷新测试

  • 向 POST http://localhost:6001/actuator/bus-refresh 发起请求
  • 观察 2,3,4 控制台是否重新连接 6001, 刷新配置

测试 03 的配置添加新用户, 然后让 03 刷新配置

  1. 03 UserServiceImpl 添加注解 @RefreshScope

image-20211213204150218

  • 刷新到新的配置, 可以重新注入到对象中
  1. 重启 03

  2. 修改 config 目录的 User-Service-Dev.yml, 添加一个 99 用户

    image-20211213204157605

  3. 推送到远程仓库

  4. 03 刷新配置 POST http://localhost:6001/actuator/bus-refresh/user-server

  5. 访问添加的 99 用户 GET http://localhost:3001/user-service/99

  6. 不需要重启服务就可以刷新配置中心

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

偶尔也吹晚风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值