Springcloud-Config客户端配置与测试

阳光穿透心脏的1/2处 2023-10-05 12:17 114阅读 0赞

Config客户端配置与测试

  • 环境搭建
  • 问题随时而来,分布式配置的动态刷新

环境搭建

1、新建cloud-config-client-3355

2、pom

  1. <dependencies>
  2. <dependency>
  3. <groupId>org.springframework.cloud</groupId>
  4. <artifactId>spring-cloud-starter-config</artifactId>
  5. </dependency>
  6. <dependency>
  7. <groupId>org.springframework.cloud</groupId>
  8. <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
  9. </dependency>
  10. <dependency>
  11. <groupId>com.atguigu.springcloud</groupId>
  12. <artifactId>cloud-api-commons</artifactId>
  13. <version>${project.version}</version>
  14. </dependency>
  15. <dependency>
  16. <groupId>org.springframework.boot</groupId>
  17. <artifactId>spring-boot-starter-web</artifactId>
  18. </dependency>
  19. <dependency>
  20. <groupId>org.springframework.boot</groupId>
  21. <artifactId>spring-boot-starter-actuator</artifactId>
  22. </dependency>
  23. <dependency>
  24. <groupId>org.springframework.boot</groupId>
  25. <artifactId>spring-boot-devtools</artifactId>
  26. <scope>runtime</scope>
  27. <optional>true</optional>
  28. </dependency>
  29. <dependency>
  30. <groupId>org.projectlombok</groupId>
  31. <artifactId>lombok</artifactId>
  32. <optional>true</optional>
  33. </dependency>
  34. <dependency>
  35. <groupId>org.springframework.boot</groupId>
  36. <artifactId>spring-boot-starter-test</artifactId>
  37. <scope>test</scope>
  38. </dependency>
  39. </dependencies>

3、bootstrap.yml
①是什么?
在这里插入图片描述
记住,客户端的yml文件一定要是bootstrap.yml,因为自己的bootstrap.yml和从配置中心拉取得application,yml和起来才是该微服务完整的配置文件,如果你本地也是application.yml则会和从配置中心拉取的冲突,导致启动失败等。

②内容

  1. server:
  2. port: 3355
  3. spring:
  4. application:
  5. name: config-client
  6. cloud:
  7. config:
  8. label: master # 分支名称
  9. name: config # 配置文件名称
  10. profile: dev # 配置文件后缀 综合 上面三个就是,master分支上的config-dev文件被读取,即http://localhost:3344/master/config-dev
  11. uri: http://localhost:3344 # 配置中心地址
  12. eureka:
  13. client:
  14. service-url:
  15. defaultZone: http://eureka7001.com:7001/eureka

4、主启动类

  1. @SpringBootApplication
  2. public class ConfigClientMain3355 {
  3. public static void main(String[] args) {
  4. SpringApplication.run( ConfigClientMain3355.class,args);
  5. }
  6. }

5、业务类

  1. @RestController
  2. public class ConfigClientController {
  3. @Value("${config.info}") //相当于从配置中心读取了application.yml,然后从其中读取config.info
  4. private String configInfo;
  5. @GetMapping("/configInfo")
  6. public String getConfigInfo(){
  7. return configInfo;
  8. }
  9. }

6、测试
①、启动Config配置中心3344微服务并自测
http://config-3344.com:3344/master/config-dev.yml
http://config-3344.com:3344/master/config-test.yml

②启动3355作为Client准备访问:http://localhost:3355/configInfo

问题随时而来,分布式配置的动态刷新

上面成功实现了客户端3355访问SpringCloud Config3344通过GitHub获取配置信息。
但是现在发现了一个问题

Linux运维修改GitHub上的配置文件内容做调整,刷新3344,发现ConfigServer配置中心立刻响应,刷新3355,发现ConfigServer客户端没有任何响应,3355没有变化除非自己重启或者重新加载难道每次运维修改配置文件,客户端都需要重启??

发表评论

表情:
评论列表 (有 0 条评论,114人围观)

还没有评论,来说两句吧...

相关阅读

    相关 客户自动化测试研究

    背景 测试作为质量保证极其重要的一环,在移动App开发流程中起到非常关键的作用。从开发工程师到测试工程师,人人都应具备良好的测试意识,将隐患和风险在上线之前找出并解决,可

    相关 客户的缓存策略测试方案

    1、客户端做缓存的目的:   解决弱网条件下的加载速度问题。 2、缓存的原理:   缓存接口数据,在一些数据新旧敏感性不高的场景下很有用,在非首次加载数据时候优先使用上次