SpringCloud Config分布式配置中心-配置一个ConfigClient

本文介绍了如何配置一个SpringCloud Config Client,使其能从config-service获取配置信息,并在user_service服务中进行集成。通过添加bootstrap.yml和相关依赖,实现配置文件的读取。同时,文章还讲解了手动刷新配置信息的步骤,包括引入依赖,配置刷新接口,以及通过调用/actuator/refresh接口实现配置的实时更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

配置一个ConfigClient

  • config-service服务已经可以从git远程仓库获取到对应的配置文件,这个时候我们继续集成,启用模块从config-service中获取配置文件
  1. 在user_service服务模块中导入依赖
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-config</artifactId>
    </dependency>
    
  2. 添加bootstrap.yml配置文件,该配置文件优先级较高,会读取config-service的配置信息到allpication.yml中,并且先把application.yml的数据清空
    spring:
      cloud:
        config:
          name: userservice # 配置文件的名称
          profile: dev # 环境
          label: master # 分支
          discovery:
            enabled: true # 通过注册中心寻找ConfigServer
            service-id: config-server # ConfigServer的服务id
    eureka:
      client:
        service-url:
          defaultZone: http://127.0.0.1:10086/eureka/
    
  3. 为了方便测试,创建一个测试类获取配置文件的信息
    @Data
    @Component
    @ConfigurationProperties(prefix = "test.redis")//读取配置文件的属性配置
    public class RedisProperties {
        private String host;
        private Integer port;
    }
    
  4. 创建一个controller,调用测试类的数据
    @RestController
    @RequestMapping("hello")
    public class RedisController {
    
        @Autowired
        private RedisProperties redisProperties;
    
        @GetMapping("redis")
        public RedisProperties getRedisProperties(){
            return redisProperties;
        }
    }
    
  5. 页面访问:http://127.0.0.1:8081/hello/redis

手动刷新服务的配置信息

  • 当我们修改了git的配置文件信息后,只能同步修改config-service的配置信息,但是单个服务的配置信息并没有立刻修改,这里我们继续集成,实现手动修改
  1. 在user_service中引入依赖
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    
  2. 在bootstrap.yml文件中加入以下配置,用来暴露刷新接口
    spring:
      cloud:
        config:
          name: userservice # 配置文件的名称
          profile: dev # 环境
          label: master # 分支
          discovery:
            enabled: true # 通过注册中心寻找ConfigServer
            service-id: config-server # ConfigServer的服务id
    eureka:
      client:
        service-url:
          defaultZone: http://127.0.0.1:10086/eureka/
    
    management:
      endpoints:
        web:
          exposure:
            include: "*" # 暴露refresh接口
    
  3. 测试
    • 我们手动修改git的配置文件信息,访问http://127.0.0.1:8081/hello/redis后发现服务的配置信息并没有修改,
    • 此时使用zpizz调用接口http://localhost:8081/actuator/refresh,注意:是post无参方式
    • 刷新后再次调用http://127.0.0.1:8081/hello/redis检查即可
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值