文章目录
- 1、引入actuator监控
- 2、修改 yml
- 3、添加注解 `@RefreshScope`
- 4、业务操作
- 5、发送通知,即可生效
- 6、思考
使用 springcloud-config 作为 服务配置 管理时, 当对 git 上的配置进行修改后, 各微服务客户端 配置无法 实时刷新,需要重启服务才能生效,解决方法如下。
1、引入actuator监控
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
2、修改 yml
management:
endpoints:
web:
exposure:
include: "*"
3、添加注解 @RefreshScope
@RefreshScope
业务类 Controller 修改
@RefreshScope
@RestController
public class XxxController {
}
4、业务操作
上面是固定配置。配置完毕后,当对 git上的配置进行修改后, 只需要 第5步,发送通知,即可生效
。
5、发送通知,即可生效
使用 post 方法,发送通知。格式如下:
curl -X POST "http://各微服务的IP:端口号/actuator/refresh"
示例如下:
6、思考
每个微服务都要执行一次post请求,手动刷新?
可否广播,一次通知,处处生效?
我们想大范围的自动刷新。