Spring Cloud Config Client的配置自动刷新
目前的博客和视频都是Spring Boot 1.5.x的,安装rabbitmq,导入依赖,配置yml,添加@RefreshScope,启动Config client时日志都会打印出/bus/refresh这个端口,但是到spring boot2.0就不再打印这个端口,也无法访问。即使yml配置暴露actuator的所有端口,也就只有/actuator/refresh这个端口(这个端口是只更新一个的)。
请问Spring boot 2.0如何实现Config Client自动刷新配置
下面的这段配置只需要添加到config-client端。
management:
endpoints:
web:
exposure:
include: bus-refresh
而服务端需要配置下如下,来暴露所有接口
management:
endpoints:
web:
exposure:
include: "*"
然后再通常查找日志可发现有该[/actuator/refresh],methods=[POST] 日志,通过访问使用curl即可刷新config-server从远端Git拉取修改后的配置:
curl -v -X POST "http://localhost:8092/actuator/bus-refresh"
这里我们使用curl主要是为了测试,而真正在服务上线后,这个任务专门由类似于github、码云等,或者公司自己搭建的私服来提供的Webhooks功能来做的。
你们的github webhook的 url都怎么写的?
我写完 修改了配置之后,server没有更新,client也没有收到。
自己用postman发请求就没问题。
我要把Client服务的端口放在git 上 管理 修改git上的port ,然后post - bus/refresh 为什么服务端口不糊变?这是为什么?只有使用了@RefreshScope注解的地方才会修改,自动注入的信息 他不会刷新!!难道bus不能修改自动注入的配置信息,比如端口,实例名等信息
spring cloud Finchley.SR1 求解
Spring boot 2.0的改动较大,/bus/refresh全部整合到actuador里面了,所以之前1.x的management.security.enabled全部失效,不适用于2.0
适用于2.0的配置是这样的:
management:
endpoints:
web:
exposure:
include: bus-refresh
另外注解
@RefreshScope
需要在配置的页面加上,就是说附带@Value的页面加上此注解
请求刷新的页面由原来1.5.x的localhost:8888/bus/refresh
变成:http://localhost:8888/actuator/bus-refresh
注意:config-server和config-client的配置都得加上
management:
endpoints:
web:
exposure:
include: bus-refresh
配置
整合被折腾了好几天,实在是大坑