SpringCloud之Config配置中心搭建和客户端配置文件实时刷新

亦凉 2022-11-18 01:36 328阅读 0赞

一、配置中心作用

spring cloud config就是一个配置中心。其采用集中式管理每个微服务的配置信息,并使用GIT等版本仓库统一存储配置内容,实现版本化管理控制。微服务与配置中心使用rest方式交互来实现可扩展的配置服务。

spring cloud config配置中心解决了微服务系统的配置中心化、配置版本控制、平台独立、语言独立等问题,其特性如下:

  • 提供服务端和客户端支持(spring cloud config server和spring cloud config client);
  • 集中式管理分布式环境中的配置信息;
  • 基于spring环境提供配置管理,与spring系列框架无缝结合;
  • 可用于任何语言开发环境;
  • 默认基于GIT仓库实现版本控制;

二、配置中心原理

在这里插入图片描述

三、配置中心应用

提前搭建好eureka。

远程配置文件

在这里插入图片描述注意名称。

服务端配置

pom.xml引入

  1. <dependency>
  2. <groupId>org.springframework.cloud</groupId>
  3. <artifactId>spring-cloud-config-server</artifactId>
  4. </dependency>
  5. <dependency>
  6. <groupId>org.springframework.boot</groupId>
  7. <artifactId>spring-boot-starter-actuator</artifactId>
  8. </dependency>

启动类配置
在这里插入图片描述yml配置

  1. server:
  2. port: 8999
  3. spring:
  4. application:
  5. name: base-spring-config
  6. cloud:
  7. config:
  8. server:
  9. git:
  10. uri: https://gitee.com/xxx/static-resource.git
  11. username: xxx #用户名
  12. password: xxx#密码
  13. default-label: master #默认分支,如果不开启需要输入分支
  14. search-paths: /** #配置文件目录
  15. eureka:
  16. client:
  17. service-url:
  18. defaultZone: http://192.168.xxx:9320/eureka
  19. register-with-eureka: false #是否注册到eureka
  20. fetch-registry: false #本地缓存服务
  21. registry-fetch-interval-seconds: 5 #eureka client刷新本地缓存时间,默认30
  22. instance:
  23. appname: base-spring-config
  24. prefer-ip-address: true
  25. instance-id: ${ spring.cloud.client.ip-address}:${ spring.application.name}:${ server.port}
  26. #Eureka客户端向服务端发送心跳的时间间隔,单位为秒(客户端告诉服务端自己会按照该规则),默认30
  27. lease-renewal-interval-in-seconds: 5
  28. #Eureka服务端在收到最后一次心跳之后等待的时间上限,单位为秒,超过则剔除(客户端告诉服务端按照此规则等待自己),默认90
  29. lease-expiration-duration-in-seconds: 7

客户端配置

项目结构
在这里插入图片描述

pom.xml

  1. <dependency>
  2. <groupId>org.springframework.cloud</groupId>
  3. <artifactId>spring-cloud-starter-config</artifactId>
  4. </dependency>
  5. <dependency>
  6. <groupId>org.springframework.boot</groupId>
  7. <artifactId>spring-boot-starter-actuator</artifactId>
  8. </dependency>

bootstrap.yml

  1. spring:
  2. cloud:
  3. config:
  4. name: base-app-region
  5. profile: dev
  6. label: master
  7. uri: http://127.0.0.1:8999/

实体类

  1. @Data
  2. public class PlatformBo {
  3. private Long id;
  4. private String platformName;
  5. private String areaCode;
  6. private String areaName;
  7. private Integer levelType;
  8. private String addressUrl;
  9. private Integer sort;
  10. private Integer isEnable;
  11. }
  12. @Data
  13. @Component
  14. @ConfigurationProperties(prefix = "regions")
  15. public class PlatformBoConfig {
  16. private List<PlatformBo> platform;
  17. }

获取
在这里插入图片描述

四、热刷新client配置内容

配置拉取是一方面,如何做到不用重启项目,git上更新文件,客户端能够实时获取到。

@RefreshScope

在客户端的访问层添加config自带的刷新注解
在这里插入图片描述然后访问客户端:
http://127.0.0.1:8095/actuator/refresh进行刷新。

发表评论

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

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

相关阅读