引入:
前面提到spring cloud config 做服务配置中心(https://blog.csdn.net/lileLife/article/details/84871773),当远程git提交代码时候,客户端需要使用RefreshScope刷新获取最新配置,和在git中使用webhock来通知cofing service,但是随着客户端越来越多,客户端 不能一个一个都执行一遍。这时候可以使用spring cloud bus来解决这个问题。
- 提交代码触发post给客户端A发送bus/refresh
- 2、客户端A接收到请求从Server端更新配置并且发送给Spring Cloud Bus
- 3、Spring Cloud bus接到消息并通知给其它客户端
- 4、其它客户端接收到通知,请求Server端获取最新配置
- 5、全部客户端均获取到最新的配置
spring cloud bus就是消息总线,当有git提交时候,config server会通知消息总线,然后消息总线分发到各个config client 客户端。需要使用mq做消息总线,如kafaka,rabbitmq等。
客户端配置如下:
maven 配置
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>
配置文件引入amqp,这里使用rabbitMq
spring.rabbitmq.host=localhost
spring.rabbitmq.port=5672
spring.rabbitmq.username=springcloud
spring.rabbitmq.password=123456