1、基于 Config Server 将已有的模块改造成 Config Client
以改造 spring-cloud-product-service 为例进行演示,需要进行如下步骤:
1、添加 pom 依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-client</artifactId>
</dependency>
2、修改配置信息,只保留如下图所示部分
修改了配置信息后,需要在仓库中新建以spring-cloud-product-service-prd.properties
命名的配置文件。
在仓库中添加一个配置项 spring.application.name.desc=9999
用于测试配置是否生效
2、启动 spring-cloud-product-service 模块
使用 Postman 可以正常访问接口,且可以动态获取配置信息,但是配置信息发生变化后,只有重启才能获取最新的配置信息。
基于修改仓库中的配置之后,必须重启应用之后才能获取到最新的配置信息的问题,Spring Cloud 提供了 SpringBootActuator 和 Spring Cloud Bus 来动态刷新配置。
3、SpringBootActuator 动态加载配置
1、引入 pom 配置
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
2、添加如下配置
# 通过 refresh 刷新配置
management.endpoints.web.exposure.include=refresh
3、指定刷新范围
在需要获取最新配置的类上添加 @RefreshScope
注解
4、重新启动,修改配置
再次请求,不能获取到最新的配置,需要手动调用一个接口手动刷新配置,才能够获取到最新的配置信息。
Post 请求该接口:http://localhost:8081/actuator/refresh
5、再次请求,已获取到最新配置信息