SpringCloud(8)
Bus消息总线
可以和消息队列(rabbitmq或kafuf)整合
安装rabbitmq
可以查看我的这篇文章rabbitmq入门
springcloud 全局广播通知
- 先安装3355的客户端配置在配置一个3366的客户端
直接通知configServer服务中心,让所有从此获取config的微服务都得到通知
- 服务端添加消息总线的支持
pom:yml1
2
3
4<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37server:
port: 3344
spring:
application:
name: cloud-config-center # 注册进Eureka服务器的微服务名
cloud:
config:
server:
git:
uri: https://gitee.com/zfx-t/springcloud-config.git
search-paths:
- springcloud-config
#### 搜索目录
label: master
rabbitmq:
host: localhost
port: 5672
username: admin
password: 123
## rabbitmq相关配置,暴爵bus刷断配置的端点
management:
endpoints: #暴露bus刷断配置的端,点
web:
exposure:
include: 'bus-refresh'
eureka:
client:
service-url:
defaultZone: http://localhost:7001/eureka - 客户端添加总线支持
pom:yml:1
2
3
4<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>1
2
3
4
5
6
7# 添加rabbitmq配置
在spring下面:
rabbitmq:
host: localhost
port: 5672
username: admin
password: 123
此时已经配置完成,只需要修改配置后,运维工程师向3344发送一个refresh请求,就会让所有的子微服务得到刷新curl -X POST http://localhost:3344/actuator/bus-refresh
定点通知,只通知一个服务更新,其他的不更新
通知单个微服务,然后广播其他微服务程序(不建议这样使用,会增加每个微服务的职责,还需要额外的消息通知功能)
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 小贺同学的blog!
评论