【springCloud基础篇-14】Spring Cloud Bus 之RabbitMQ方式

请先保证RabbitMQ已安装,参考博客:https://blog.csdn.net/qq_33333654/article/details/103177091

基于之前的文章继续,基础篇第12章:https://blog.csdn.net/qq_33333654/article/details/103090717

注意环境与版本。

该文章参考博客:http://www.ityouknow.com/springcloud/2017/05/26/springcloud-config-eureka-bus.html

 

demo代码地址:https://download.csdn.net/download/qq_33333654/12014918

Spring cloud bus通过轻量消息代理连接各个分布的节点。这会用在广播状态的变化(例如配置变化)或者其他的消息指令。Spring bus的一个核心思想是通过分布式的启动器对spring boot应用进行扩展,也可以用来建立一个多个应用之间的通信频道。目前唯一实现的方式是用AMQP消息代理作为通道,同样特性的设置(有些取决于通道的设置)在更多通道的文档中。

Spring cloud bus被国内很多都翻译为消息总线,也挺形象的。大家可以将它理解为管理和传播所有分布式项目中的消息既可,其实本质是利用了MQ的广播机制在分布式的系统中传播消息,目前常用的有Kafka和RabbitMQ。利用bus的机制可以做很多的事情,其中配置中心客户端刷新就是典型的应用场景之一,我们用一张图来描述bus在配置中心使用的机制。

从两张图上可以看出,第二张是比较合适的,其中提到的webhook是git版本库的一个插件,可以触发一些操作,比如提交代码时请求bus/refresh等,由于我个人的博客使用的是本地方式,所以可以暂时不考虑。

 

作为基础篇本次只需要才用一个server端和一个client端即可。

 

首先server端server项目,添加Pom文件依赖:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>

修改配置文件:

 

server:
  port: 9021
eureka:
  client:
    service-url:
      defaultZone: http://peer1:8000/eureka/,http://peer2:8001/eureka/,http://peer3:8002/eureka/
spring:
  application:
    name: spring-cloud-config-server
  profiles:
    active: native
  rabbitmq:
    host: localhost
    port: 5672
    username: admin
    password: 123456
management:
  security:
    enabled: false

 其中添加了rabbitmq的IP、端口、用户及密码,并放开了权限。其中用户和密码可以在rabbitmq中创建,也可以使用默认用户。

 

接下来修改客户端client项目。

添加pom依赖

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>

 配置文件application.yml修改:

server:
  port: 9031
spring:
  application:
    name: spring-cloud-config-client
  rabbitmq:
    host: localhost
    port: 5672
    username: admin
    password: 123456
    virtual-host: /
  cloud:
    bus:
      trace:
        enabled: true
management:
  security:
    enabled: false #springboot 1.5.X以上默认开通了安全认证

 bootstrap文件无需修改。

可以看到修改内容,添加了rabbitmq配置,同时开启了消息追踪。

cloud:
  bus:
    trace:
      enabled: true

默认是false,开启消息追踪。

 

分别启动注册中心、server项目、client项目。

访问http://localhost:9031/hello

参看是否与server项目中的native-mysql.properties文件中内容一致,然后修改该内容文件。重启server项目,

然后使用postman或者cmd命令行请求

http://localhost:9031/bus/refresh

再次请求http://localhost:9031/hello观察变化,

同时可以使用Postman请求http://localhost:9031/trace

来查看消息详细情况。

消息Bug问题不多,主要问题就是安装配置与版本,注意环境问题即可。

本文才用的是RabbitMQ,同时也可以才用其他的,比如kafka等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不能吃辣的JAVA程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值