SpringCloud Bus如何实现配置刷新

时间:2021-08-12 01:53:28

要想实现配置刷新,首先得有项目基础结构

  • 项目一: 注册中心
  • 项目二: 配置中心
  • 项目三: 客户端

先启动注册中心

然后启动配置中心

然后在不同端口启动客户端的多个实例,这些实例都是通过bootstrap.properties连接到配置中心后,加载相应配置后启动的.

成功完成上述基础设施,才开始关注配置刷新.

==========================================================================================

SpringCloud Bus实现配置刷新只需要做以下几点:

1. 在配置中心和客户端都添加依赖: spring-cloud-starter-bus-amqp

说明: bus表示引入的是SpringCloud Bus的依赖, amqp表示bus的消息传递功能是通过rabbitmq实现.(如果想通过kafka实现,则对应的依赖是spring-cloud-starter-bus-kafka)

2. 在配置中心和客户端都添加连接消息中间件的配置,由于amqp用的是rabbitmq消息中间件,因此对应的配置是:

spring.rabbitmq.host=localhost
spring.rabbitmq.password=wwx614831
spring.rabbitmq.username=wwx614831
spring.rabbitmq.port=5672

3. 在配置中心的配置中加入不进行权限检查的配置:

management.security.enabled=false
4. 使用:

  通过获取配置文件中一个示例属性值,来判断配置是否真的刷新

  刷新前: 获取name属性值=wangxuejian

  更改为: name=xuejian

  刷新: 调用配置中心的bus/refresh接口

  看效果: 获取name属性值变成xuejian,且多个实例都改变了.

5. 注意:

  把需要刷新配置的Bean上标注@RefreshScope注解.

总结:

1. 首先搭建基础架构,实现配置中心和注册中心的正常使用

2. 使用什么消息中间件,就引入什么中间件的依赖

3. 跳过安全检查,避免401问题

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://www.cnblogs.com/wangxuejian/p/13622139.html