配置信息手动刷新
    很多场景下,需要在运行期间动态调整配置。如果配置发生了修改,微服务要如何实现配置
    的刷新呢?
    见示例:10-ms-config-client-refresh
    添加依赖如下,其中spring-boot-starter-actuator提供了/refresh端点,用于配置的刷新
    image.png
    在Controller上添加注解@RefreshScope,添加这个注解的类会在配置更改时得到特殊的
    处理
    image.png
    1、启动项目(启动两个,一个端口8081,一个端口8082),访问地址:
    http://localhost:8081/profile,得到结果:dev-1.0,访问地址:
    http://localhost:8082/profile,得到结果:dev-1.0
    2、修改git仓库里的配置文件ms-config-dev.properties的内容为:
    profile=dev­1.0­change
    3、再次访问地址:http://localhost:8081/profile,得到结果还是dev-1.0,说明配置尚
    未刷新
    4、发送post请求:http://localhost:8081/refresh,返回结果:"profile",表
    示profile这个配置属性已被刷新
    5、再次访问http://localhost:8081/profile,得到结果:dev-1.0-change,说明属
    性已刷新
    6、再次访问http://localhost:8082/profile,得到结果:dev-1.0,说明8082的服务
    并没有刷新,还需再次手动刷新才能更新配置

    配置信息自动刷新
    前文讨论了使用/refresh端点手动刷新配置,但如果所有微服务节点的配置都需要手动去刷
    新,工作量可想而知。不仅如此,随着系统的不断扩张,会越来越难以维护。因此,实现配
    置的自动刷新是很有必要的,Spring Cloud Bus就可以实现配置的自动刷新。
    Spring Cloud Bus使用轻量级的消息代理(例如 RabbitMQ、 Kafka等)连接分布式系统
    的节点,这样就可以广播传播状态的更改(例如配置的更新)或者其他的管理指令。可将
    Spring Cloud Bus想象成一个分布式的Spring Boot Actuator。
    image.png
    见示例:10-ms-config-server-refresh-cloud-bus和10-ms-config-client-refresh-cloud-bus
    服务端示例:10-ms-config-server-refresh-cloud-bus
    添加依赖
    image.png
    配置文件增加rabbitmq的配置:
    image.png
    客户端示例:10-ms-config-client-refresh-cloud-bus
    添加依赖
    image.png
    配置文件增加rabbitmq的配置
    image.png
    运行项目(运行一个config server和两个config client),修改git仓库里的配置文件,然后用
    post方式请求地址:http://localhost:8080/bus/refresh,如果返回成功,则config的所有
    客户端的配置都会动态刷新。