美文网首页
Spring Cloud构建微服务架构(七)消息总线(Sprin

Spring Cloud构建微服务架构(七)消息总线(Sprin

作者: ApesKingMan | 来源:发表于2021-04-28 20:28 被阅读0次

0 前言

在之前的Spring Cloud Config的介绍中,我们还留了一个悬念:如何实现对配置信息的实时更新。虽然,我们已经能够通过/refresh接口和Git仓库的Web Hook来实现Git仓库中的内容修改触发应用程序的属性更新。

但是,若所有触发操作均需要我们手工去维护Web Hook中的应用位置的话,这随着系统的不断扩张,会变的越来越难以维护,而消息代理中间件是解决该问题最为合适的方案。是否还记得我们在介绍消息代理中的特点时有提到过这样一个功能:消息代理中间件可以将消息路由到一个或多个目的地。利用这个功能,我们就能完美的解决该问题,下面我们来说说Spring Cloud Bus中的具体实现方案。

1 安装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

2 RabbitMQ的使用说明

安装完成后,我们可以使用start和stop 分别管理 启动和停止。

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

rabbitmq-plugins enable rabbitmq_management

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

3 开始进行配置

自动更新配置的原理(图中product、order均为客户端)图如下:

当我们在远端Git修改了配置之后,如果我们访问Config Server的s-refresh接口,Config Server就会把更改的配置发送给MQ,之后MQ就会把要改变的配置推送给各个客户端,这样就实现了自动更换配置的功能,现在我们来试一试吧。记住在这之前要先启动Rabbitmq。 

这里新建一个config-cloudbus的module。并且向前几张一样增加父pom和支持,并增加

        <dependency>            <groupId>org.springframework.cloud</groupId>            <artifactId>spring-cloud-config-server</artifactId>        </dependency>        <dependency>            <groupId>org.springframework.cloud</groupId>            <artifactId>spring-cloud-bus</artifactId>        </dependency>

的依赖。

我们设置我们的配置文件为:

spring.application.name=config-cloudbusserver.port=8890spring.cloud.config.server.git.uri=https://localhost:8888/spring.cloud.config.server.git.search-paths=respospring.cloud.config.label=master# 最后定向的文件spring.cloud.config.profile=dev# 定义配置名称spring.cloud.config.name=configserver# 定义rabbitmqspring.rabbitmq.host=localhostspring.rabbitmq.port=5672spring.rabbitmq.username=guestspring.rabbitmq.password=guest

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

项目代码:https://github.com/houshuai0816/SpringCloudDemo参考:http://blog.didispace.com/springcloud7/https://blog.csdn.net/qq_15807167/article/details/7934996

https://mp.weixin.qq.com/s/IPxdb4XrxZHVar-0oNDZbA

相关文章

网友评论

      本文标题:Spring Cloud构建微服务架构(七)消息总线(Sprin

      本文链接:https://www.haomeiwen.com/subject/boourktx.html