irpas技术客

SpringCloud微服务架构开发实战:如何集成BuS?_m0_63437643

网络 5955

如何集成 BuS

Spring Cloud Bus致力于提供分布式消息总线的功能。目前,Spring Cloud Bus支持使用AMQP协议(如Kafka、Rabbit等)消息代理作为通道。

本节将演示如何集成Spring Cloud Bus。

初始化应用

首先在 micro-weather-config-client、micro-weather-config-server应用的基础上,重新创建一个新的应用micro-weather-config-client-bus 及?micro-weather-config-server-bus,用来演示Spring CloudBus的功能。

所需环境

为了演示本例子,需要采用如下开发环境。

JDK8。.Gradle 4.0。Spring Boot 2.0.0.M3。Spring Cloud Starter Netflix Eureka Client Finchley.M2。Spring Cloud Config Server Finchley.M2。Spring Cloud Config Client Finchley.M2。·Spring Cloud Starter Bus Dalston.SR5。.`Erlang/OTP 20.2。RabbitMQ 3.7.2。

注意:由于Spring Cloud Bus本身还处于一个发展阶段,官方在Finchley.M2版本中有bug未解决,因此,本节实例是基于Dalston.SR5版本来编写的。有关该bug 的描述,可见 https:/github.com/spring-cloud/spring-cloud-bus/issues/98。

更改配置

要使用Spring Cloud Starter Bus,最简单的方式莫过于添加 spring-cloud-starter-bus-amqp依赖。该依赖的默认实现就是Rabbit。

dependencies { //... //添加Spring Cloud starter Bus依赖 compile('org.springframework.cloud:spring-cloud-starter-bus-amqp') }

application.properties文件中的spring.application.name,改为新的项目的名称 micro-weather-config-client-bus及?micro-weather-config-server-bus。同时,增加如下配置。

spring.rabbitmq.host=localhost spring.rabbitmq.port=5672 #spring.rabbitmg.username=guest #spring.rabbitmq.password=guest management.security.enabled=false

其中:

.spring.rabbitmq.*是消息中间件RabbitMQ相关的配置。如果RabbitMQ的host是localhost,则username和password是可选的;

management.security.enabled值设为false,用于禁用安全管理设置,利于本地调试。如果是在公司内网部署,不仅有物理隔离,也可以禁用安全管理设置。

下载安装RabbitMQ

目前,RabbitMQ最新版本为3.7.2。下载地址为 http:/·/download.html。

由于RabbitMQ运行在Erlang 环境,因此确保在RabbitMQ安装前先安装好Erlang。Erlang 的安装包,可以在 http://·/ ########## ######## ########## Logs:C:/Users/ADMINT~1/AppData/Roaming/RabbitMO/log/RABBIT~1.LOG C:/Users/ADMINI~1/AppData/Roaming/RabbitMQ/log/rabbit@AGOC3-705091335_upgrade.log starting broker...completed with oplugins. 修改micro-weather-config-client-bus

在Git仓库中增加了 micro-weather-config-client-bus-dev.properties配置信息,该配置主要提供给micro-weather-config-client-bus应用使用。

auther=waylau.com version=1.0.0

修改 micro-weather-config-client-bus应用,在应用中增加一个VersionController.java,用于演示如何从配置中心实时获取配置信息。VersionController.java 代码如下。

package com.waylau.spring.cloud.weather.controller; import org.springframework.beans.factory.annotation.Value; import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** *Version controller. * @since 1.0.0 2017年12月31日 * @author <a href="https://waylau.com">Way Lau</a> */ RefreshScope CRestcontroller public class versionController { @value("${auther}") private string auther; @value("${version} ") private string version; @RequestMapping("/config") public String getConfig({ return auther +""+ version; } }

其中,访问lconfig 接口,可以显示auther和 version的配置信息。这里需要注意的是,需要给动态加载变量的类上面加载@RefreshScope注解。

运行、测试

在启动应用之前,首先要确保RabbitMQ服务处于启动状态。

接着启动在之前章节中搭建的 micro-weather-eureka-server项目,之后再来启动本节的实例micro-weather-config-server-bus及?micro-weather-config-client-bus。

通过浏览器访问 http:/localhost:8080/config,显示如下信息,则说明micro-weather-config-cli-ent-bus应用拿到了在配置中心的配置。

waylau.com 1.0.0 源码

本节示例所涉及的源码见 micro-weather-eureka-server、micro-weather-config-server-bus及?micro-weather-config-client-bus。

本篇文章内容给大家讲解的是如何集成BuS 下篇文章给大家讲解的是实现配置信息的自动更新;觉得文章不错的朋友可以转发此文关注小编;感谢大家的支持!


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #如何集成 #BuSSpring #Cloud #目前Spring