分布式03-Spring Cloud Cofig 客户端主动刷新 三

|▌冷眼眸甩不掉的悲伤 提交于 2020-04-06 02:41:51

Spring Cloud Cofig 1,2

https://my.oschina.net/u/4039389/blog/3217362

https://my.oschina.net/u/4039389/blog/3217468

1.客户端gradle引入包

compile 'org.springframework.boot:spring-boot-starter-actuator'
compile 'org.springframework.cloud:spring-cloud-starter-bus-amqp'

2.客户端 application.properties

management.endpoints.web.exposure.include=* #actuator允许访问的链接 
#rabbitmq配置=================单机刷新可以不用配置
spring.rabbitmq.host=xxx.xxxx.xxx.xx
spring.rabbitmq.port=5672
spring.rabbitmq.prod.port=5674
spring.rabbitmq.username=xxx
spring.rabbitmq.password=xxxx
spring.rabbitmq.virtual-host=/
spring.rabbitmq.publisher-confirms=true

3.添加Controller

再类注解@RefreshScope

添加方法打印配置文件中的tmp.file.path

我们当前git库的文件值是C:/home/test1/

启动客户端,可以启动多个我们这次用2个客户端做为测试,端口分别是12000,12001

发布请求 http://localhost:12000/public/tmpPathhttp://localhost:12001/public/tmpPath

可以发现返回的都是 C:/home/test1/

4.修改数据

修改数据C:/home/test/并且提交git库

请求 http://localhost:12000/actuator/refresh  进行单机刷新,接口返回发生变动的参数

访问 http://localhost:12000/public/tmpPath   发现 C:/home/test1/ 已经变成 C:/home/test/

访问 http://localhost:12001/public/tmpPath   发现依旧还是 C:/home/test1/

如果是集群的情况些修改了参数要一个个去刷新有可能漏刷也增加了工作量。

这时我们使用 Spring Cloud bus 帮助我们同一刷新就很方便了。请求 http://localhost:12000/actuator/bus-refresh

这时候我们看 http://localhost:12001/public/tmpPath ,发现 C:/home/test1/ 也已经变成 C:/home/test/

这样就能通过刷新一台客户端从而刷新全部 客户端了。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!