《SpringCloud篇:004Config - 服务的动态配置》

一、概述

  • 配置文件分散在不同的项目中,没有统一的管理,不方便维护。
  • 配置文件的安全问题。
  • 修改完配置文件,无法立即生效,需要它动态刷新。

在这里插入图片描述

二、搭建ConfigServer

1.将配置文件编写在Git仓库
2.通过ConfigServer拉取Git仓库中的配置信息
3.其他服务作为ConfigClient与ConfigServer进行交互,拉取相应的配置信息

配置ConfigServer的pom依赖

<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>

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

在启动类添加注解@EnableConfigServer

添加配置文件
在这里插入图片描述

spring:
  cloud:
    config:
      server:
        git:
          basedir: D:\basedir    # 本地仓库的地址
          username: zjw_2301211@126.com    #  远程仓库用户名
          password: z123123   #   远程仓库密码
          uri: https://gitee.com/zhengdaxian/config-resp.git       # 远程仓库地址

启动项目访问Git上面的配置信息http://localhost:port/{branch}/{application}-{profile}.yml
在ConfigServer无问题后在尝试连接Config-Client

三、搭建Config-Client

ConfigClient要通过ConfigServer交互获取到Git上的配置文件信息

在这里插入图片描述

创建SpringBoot项目,并配置依赖

//第一个依赖不一定对
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-config</artifactId>
</dependency>

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

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

修改为bootstrap.yml配置文件

# 指定Eureka服务地址
eureka:
  client:
    service-url:
      defaultZone: http://root:root@localhost:8761/eureka,http://root:root@localhost:8762/eureka

#指定服务的名称
spring:
  application:
    name: CUSTOMER-${version}
  cloud:
    config:
      discovery:
        enabled: true
        service-id: CONFIG
      profile: dev

version: v1


# CONFIG -> CUSTOMER-v1-dev.yml

通过上述配置获取:http://configserver的地址/分支/服务名称/-环境.yml
运行结果
在这里插入图片描述

小结:后续在Git上添加配置文件时,推荐先在项目中编写,在复制过去(idea中有提示)

四、动态配置

需要广播的加依赖(configServer)

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

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

修改configServer配置文件
在这里插入图片描述

spring:
  rabbitmq:
    host: 192.168.199.109
    port: 5672
    username: test
    password: test
    virtual-host: /test

management:
  endpoints:
    web:
      exposure:
        include: "*"

其他项目(configClient)也添加依赖和修改配置,让它们也能修改yml文件

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>
spring:
  rabbitmq:
    host: 192.168.199.109
    port: 5672
    username: test
    password: test
    virtual-host: /test

为controller类添加注解@RefreshScope,实现动态刷新

测试功能:
1.访问configclient中的/version路径 — v1.0.0
修改Git仓库中的配置,将v1…0.0修改为v2.0.0
手动法发送请求给ConfigServer:http://ip:port/actuator/bus-refresh,不重启项目,CONFIG在Gitee修改之后,configclient是自动拉取最新配置信息的

五、内网穿透https://natapp.cn/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值