SpringCloud Bus如何实现配置刷新
作者:一马平川1
要想实现配置刷新,首先得有项目基础结构
- 项目一: 注册中心
- 项目二: 配置中心
- 项目三: 客户端
先启动注册中心
然后启动配置中心
然后在不同端口启动客户端的多个实例,这些实例都是通过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问题
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。