接上文 SpringCloud-消息组件
1 注册Bus

Bus需要基于一个具体的消息队列实现,比如RabbitMQ.还使用最开始的服务拆分项目,比如现在借阅服务的某个接口调用时,能给用户服务和图书服务发送一个通知。
首先父项目导入SpringCloud依赖
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>2021.0.1</version><type>pom</type><scope>import</scope>
</dependency>

子项目导入依赖
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId>
</dependency>


book服务也是同样添加依赖。 然后在配置文件中将RabbitMQ的相关信息配置:
spring:rabbitmq:addresses: 8.130.172.119username: adminpassword: passwordvirtual-host: /
management:endpoints:web:exposure:include: "*" #暴露端点,一会用于提醒刷新



然后启动三个服务


此时三个服务自动生成了各自的消息队列,这样就可以监听并接受消息了。
2 部署配置中心
参考
https://editor.csdn.net/md/?articleId=132781568
先关闭三个服务,然后新增模块

导入依赖
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-config-server</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency>

编写启动类

编写配置文件

在配置文件添加本地仓库的一些信息(远程仓库同理)


server:port: 8700
spring:application:name: config-servercloud:config:server:git:# 这里填写的是本地仓库地址,远程仓库直接填写远程仓库地址 http://git...uri: file://G:\springcloud\config-repo# 默认分支设定为你自己本地或是远程分支的名称default-label: master
启动config服务,查看仓库的文件内容

此时服务器搭建好了。
搭建客户端
导入依赖,只给book服务添加,这里只演示book服务

添加bootstrap.yml文件

spring:cloud:config:# 名称,其实就是文件名称name: book-service# 配置服务器的地址uri: http://localhost:8700# 环境profile: dev# 分支label: master
在bookcontroller打印一下配置文件的内容并添加注
解


启动三个服务和config服务,然后访问test接口,可以看到配置的仓库文件
book-service-dev.yml中spring: application:name的值。

然后在仓库中修改
spring: application:name的值



消息队列也有消息变动

再次访问文件的内容发现有改变,这是消息在起作用。

