之前的config配置,git更新后,config服务端可自动刷新,而所有的config客户端需发一个post请求;如何省略config客户端不用发请求的步骤
而使用Bus+config+RabbitMQ实现配置文件的动态刷新,业务逻辑如下:
消息总线:所有微服务都连接上一个公用的消息主题,所有微服务产生的消息会通过消息主题被其他微服务监听和消费
Win10系统已安装rabbitmq
为了演示效果,新建cloud-config-client-3366作为config客户端,配置pom、yml、启动类,编写业务类
全局广播的两种方式:git更新后,触发一个客户端/bus/refresh进而刷新所有客户端;git更新后,触发服务端/bus/refresh进而刷新所有客户端;在开发中通常使用方式二
在config-server端3344模块添加消息总线支持:pom中引入bus依赖,yml中配置RabbitMQ
在config-client端3355、3366模块添加消息总线支持:pom中引入bus依赖,yml中配置RabbitMQ
启动测试:更新git,向3344服务端发送请求curl -X POST "http://localhost:3344/actuator/bus-refresh" # 此时客户端集群不需要发送post请求也获取到最新配置了
例如多个config-client端中,只想更新3355
git更新后,发送请求curl -X POST "http://localhost:3344actuator/bus-refresh/config-clent:3355" # 指定3355