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/微服务名称:端口号"

posted @ 2020-06-01 16:23  ~笑春风~  阅读(120)  评论(0)    收藏  举报