【Config】02-Config、Bus与SpringCloud
Config、Bus与SpringCloud
还是没有写完。。。。。我好菜
简介
Spring Cloud Bus 配合 Spring Cloud Config 使用可以实现配置的动态刷新
作用
Spring Cloud Bus能管理和传播分布式系统间的消息,就像一个分布式执行器,可用于广播状态更改、时间推送等,也可以当作微服务间的通信通道。
什么是总线
在微服务架构的系统中,通常会使用轻量级的消息代理来构建一个共用的消息主题,并让系统中所有的微服务实例都连接上来。由于该主题中产生的消息会被所有实例监听和消费,所以称它为消息总线。在总线上的各个势力,都可以方便的广播一些需要让其他连接在该主题上的示例都知道的消息
基本原理
config-client实例都监听MQ中同一个topic(默认是Spring Cloud Bus)。当一个服务刷新数据时,他会把这个信息放入到Topic中,这样其他监听Topic的服务就能得到通知,然后去更新自身的配置。
安装前置软件RabbitMQ
推荐使用Docker安装
应用
(给cloud-config服务添加Bus)
根据
cloud-config-client-7061
,新建程序cloud-config-client-7062
。给
cloud-config-7051
,cloud-config-client-7061
和cloud-config-client-7062
添加消息总线
cloud-config-7051
pom.xml
1
2
3
4<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>application.yml
1
2
3
4
5
6spring:
rabbitmq:
host: api.rabbitmq
port: 5672
username: guest
password: guest重启服务
打开RabbitMQ管理页面
http://api.rabbitmq:15672
,打开交换机(Exchange)此时创建了交换机
springCloudBus
,为广播模式(Topic)
cloud-config-client-7061/7062
pom.xml
1
2
3
4<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>bootstrap.yml
1
2
3
4
5
6spring:
rabbitmq:
host: api.rabbitmq
port: 5672
username: guest
password: guest重启服务
打开RabbitMQ管理页面
http://api.rabbitmq:15672
,点击springCloudBus
交换机的详细信息该交换机已绑定3个队列
动态更新配置信息
查看此时配置文件数据
localhost:7051/master/springcloud-config-gitee-dev.yml
获取此时
config-client-7061
,config-client-7062
的服务配置