BUS+CONFIG
支持rabbitMQ和kafka
现用rabbitMQ广播模式;
有两种设计思想:
1.利用消息总线触发一个客户端的bus/refresh进而刷新所有客户端的配置
2.利用消息总线触发一个服务端的bus/refresh进而刷新所有客户端的配置
现在使用第二种思想,因为第一种违反了微服务架构的职责单一原则
安装rabbitMQ:https://blog.csdn.net/zhm3023/article/details/82217222
1.服务端3344pom:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>
2.yml:在spring的目录下添加下列配置
rabbitmq:
host: localhost
port: 5672
username: guest
password: guest
在主目录下添加暴露端点
# 暴露bus刷新配置的端点
management:
endpoints:
web:
exposure:
include: "bus-refresh"
3355,3366客户端配置:
3.pom:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>
4.yml:
rabbitmq:
host: localhost
port: 5672
username: guest
password: guest
测试:
1.修改config-test的version = 6,提交

2.发送一次post 请求:curl - X POST"http://localhost:3344/actuator/refresh"
3.再访问3355和3366,成功了。

4.实现定点刷新,如果只想通知3355修改这个版本,而3366不用改,改怎么实现呢?
很简单:
curl - X POST"http://localhost:3344/actuator/refresh/微服务名称:端口号"
我不是程序员,我只是程序的搬运工

浙公网安备 33010602011771号