SpringCloud-Bus

接上文 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>

SpringCloud-Bus_第1张图片

子项目导入依赖

<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>

SpringCloud-Bus_第2张图片
SpringCloud-Bus_第3张图片

book服务也是同样添加依赖。 然后在配置文件中将RabbitMQ的相关信息配置:

spring:
  rabbitmq:
    addresses: 8.130.172.119
    username: admin
    password: password
    virtual-host: /
management:
  endpoints:
    web:
      exposure:
        include: "*"    #暴露端点,一会用于提醒刷新

SpringCloud-Bus_第4张图片
SpringCloud-Bus_第5张图片SpringCloud-Bus_第6张图片

然后启动三个服务

SpringCloud-Bus_第7张图片
SpringCloud-Bus_第8张图片

此时三个服务自动生成了各自的消息队列,这样就可以监听并接受消息了。

2 部署配置中心

参考https://editor.csdn.net/md/?articleId=132781568
先关闭三个服务,然后新增模块

SpringCloud-Bus_第9张图片

导入依赖

       <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>

SpringCloud-Bus_第10张图片

编写启动类

SpringCloud-Bus_第11张图片

编写配置文件

SpringCloud-Bus_第12张图片

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

SpringCloud-Bus_第13张图片SpringCloud-Bus_第14张图片

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

启动config服务,查看仓库的文件内容

SpringCloud-Bus_第15张图片

此时服务器搭建好了。

搭建客户端
在这里插入图片描述

导入依赖,只给book服务添加,这里只演示book服务

SpringCloud-Bus_第16张图片

添加bootstrap.yml文件

SpringCloud-Bus_第17张图片

spring:
  cloud:
    config:
      # 名称,其实就是文件名称
      name: book-service
      # 配置服务器的地址
      uri: http://localhost:8700
      # 环境
      profile: dev
      # 分支
      label: master

在bookcontroller打印一下配置文件的内容并添加注


SpringCloud-Bus_第18张图片
SpringCloud-Bus_第19张图片

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

SpringCloud-Bus_第20张图片

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

SpringCloud-Bus_第21张图片
SpringCloud-Bus_第22张图片
SpringCloud-Bus_第23张图片

消息队列也有消息变动

SpringCloud-Bus_第24张图片

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

SpringCloud-Bus_第25张图片

你可能感兴趣的:(springCloud,spring,cloud,spring,后端)