springcloud-bus消息总线的使用

在微服务架构中,通常会使用轻量级的消息代理来构建一个共用的消息主题来连接各个微服务实例,它广播的消息会被所有在注册中心的微服务实例监听和消费,也称消息总线。

SpringCloud中也有对应的解决方案,SpringCloud Bus 将分布式的节点用轻量的消息代理连接起来,可以很容易搭建消息总线,配合SpringCloud config 实现微服务应用配置信息的动态更新。

消息总线其实通过消息中间主题模式,他使用广播消息的机制被所有在注册中心微服务实例进行监听和消费。以广播形式将消息推送给所有注册中心服务列表

首先使用springcloud-bus我们需要安装rabbitmq,安装过程就不说了,就跟安装qq一样贼简单,安装好以后启动rabbitmq:
在这里插入图片描述
启动好过后访问网址:local host:15672.账号密码都是guest,登录成功就进入以下界面
在这里插入图片描述
新建服务端口号3366:
添加pom依赖:

<dependencies>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-config</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
        <dependency>
            <groupId>com.zx.springcloud</groupId>
            <artifactId>cloud-api-commons</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

创建bootstrap.yml文件:

server:
  port: 3366

spring:
  application:
    name: config-client
  cloud:
    config:
      label: master
      name: config
      profile: dev
      uri: http://localhost:3344
eureka:
  client:
    service-url:
      defaultZone: http://eureka7001.com:7001/eureka
management:
  endpoints:
    web:
      exposure:
        include: "*"

新建主启动类:
在这里插入图片描述
新建controller层:
在这里插入图片描述
因为是在3344,config的服务端通知3355和3366,所以需要在3344添加pom依赖继承rabbitmq
在这里插入图片描述
修改3344的yml文件:添加rabbitmq的配置

rabbitmq:
    host: localhost
    port: 5672
    username: guest
    password: guest

配置bus:
暴露bus刷新配置的端点

management:
  endpoints:
    web:
      exposure:
        include: 'bus-refresh'

config客户端3355也需要添加pom依赖:
在这里插入图片描述
修改yml文件:添加mq的配置
在这里插入图片描述
3366也是一样的修改pom和yml文件
启动7001,3344,3355,3366访问:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
修改版本号,3改成4
在这里插入图片描述
再访问3344:版本号为5
在这里插入图片描述
没有发送post请求之前:
访问3355:版本号还是3
在这里插入图片描述
访问3366:版本还是3
在这里插入图片描述
post刷新3344:开始的时候报错是因为多添加了web依赖,3344去掉web依赖就行了
在这里插入图片描述
以上图可以看出已经post成功了,再访问3355和3366
在这里插入图片描述
在这里插入图片描述
能看到已经修改成功了并且动态更新了,
再看rabbitmq:
在这里插入图片描述
能看到有springcloudbus

下面是定点通知:
再次修改版本号,从刚刚的5修改为6
在这里插入图片描述
只通知3355变更版本号
在这里插入图片描述
依次访问3344,3355,3366
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
能看到就只有3355改变了,3366没有改变

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值