SpringCloud入门教学|第七篇:消息总线(Spring Cloud Bus)

Spring Cloud Bus将分布式系统的节点与轻量级消息代理链接。这可以用于广播状态更改(例如配置更改)或其他管理指令。一个关键的想法是,总线就像一个分布式执行器,用于扩展的Spring Boot应用程序,但也可以用作应用程序之间的通信通道。目前唯一的实现是使用AMQP代理作为传输,但是相同的基本功能集(还有一些取决于传输)在其他传输的路线图上。

进行安装RabbitMQ

本次进行安装RabbitMQ ,并用其进行试验。本次先要介绍一下Message Broker与 AMQP 协议简介

Message Broker是一种消息验证、传输、路由的架构模式,其设计目标主要应用于下面这些场景:

  • 消息路由到一个或多个目的地
  • 消息转化为其他的表现方式
  • 执行消息的聚集、消息的分解,并将结果发送到他们的目的地,然后重新组合相应返回给消息用户
  • 调用Web服务来检索数据
  • 响应事件或错误
  • 使用发布-订阅模式来提供内容或基于主题的消息路由

AMQP是Advanced Message Queuing Protocol的简称,它是一个面向消息中间件的开放式标准应用层协议。AMQP定义了这些特性:

  • 消息方向
  • 消息队列
  • 消息路由(包括:点到点和发布-订阅模式)
  • 可靠性
  • 安全性

本次安装的RabbitMQ就是以AMQP协议实现的一种中间件产品,它可以支持多种操作系统,多种编程语言,几乎可以覆盖所有主流的企业级技术平台。


  • 安装Erlang/OTP:
    http://www.erlang.org/downloads
  • 安装RabbitMQ:
    https://www.rabbitmq.com/download.html

RabbitMQ的使用说明

安装完成后,我们可以使用start和stop 分别管理 启动和停止。
SpringCloud入门教学|第七篇:消息总线(Spring Cloud Bus)_第1张图片

当然我们需要开启web模块进行管理RabbitMQ.因此进入D:\App\RabbitMQ\rabbitmq_server-3.7.3\sbin(这是我的安装目录) ,在CMD下敲入如下命令进行开启。

rabbitmq-plugins enable rabbitmq_management

通过http://localhost:15672/ 进行访问RabbitMQ,默认密码和账号 都是guest,登入后为

SpringCloud入门教学|第七篇:消息总线(Spring Cloud Bus)_第2张图片


开始进行配置

  • 这里新建一个config-cloudbus的module。并且向前几张一样增加父pom和支持,并增加
        <dependency>
            <groupId>org.springframework.cloudgroupId>
            <artifactId>spring-cloud-config-serverartifactId>
        dependency>
        <dependency>
            <groupId>org.springframework.cloudgroupId>
            <artifactId>spring-cloud-busartifactId>
        dependency>

的依赖。

  • 我们设置我们的配置文件为:
spring.application.name=config-cloudbus

server.port=8890
spring.cloud.config.server.git.uri=https://localhost:8888/
spring.cloud.config.server.git.search-paths=respo
spring.cloud.config.label=master
# 最后定向的文件
spring.cloud.config.profile=dev
# 定义配置名称
spring.cloud.config.name=configserver


# 定义rabbitmq
spring.rabbitmq.host=localhost
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest


当我们进行修改我们本地仓库的配置文件中的good 值时候,我们不需要重启服务。只需要向我们的bus发送post请求 就可以进行更改对应的值::http://localhost:8881/bus/refresh


项目代码:

https://github.com/houshuai0816/SpringCloudDemo

你可能感兴趣的:(后端--开发,SpringCloud入门教程)