如何集成 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。
application.properties文件中的spring.application.name,改为新的项目的名称micro-weather-config-client-bus及 micro-weather-config-server-bus。同时,增加如下配置。
其中:
.spring.rabbitmq.*是消息中间件RabbitMQ相关的配置。如果RabbitMQ的host是localhost,则username和password是可选的;
下载安装RabbitMQ
目前,RabbitMQ最新版本为3.7.2。下载地址为http:/www.rabbitmq.com/download.html。
由于RabbitMQ运行在Erlang 环境,因此确保在RabbitMQ安装前先安装好Erlang。Erlang 的安装包,可以在http://www.erlang.org/downloads进行下载。本例使用Erlang/OTP 20.2。
1.配置Erlang
设置环境变量ERLANG_HOME值为Erlang目录,如本例为C:\Program Fileslerl9.2。在Path中
添加%ERLANG_HOME%lsbin。
在命令提示符下输入“erl”可得如下结果,即证明安装是正确的。
2.解压
下载rabbitmq-server-windows-3.7.2.zip安装包,解压复制到任意安装目录,如本例为D:\rabbitmq_server-3.7.2。
在rabbitmq_server-3.7.2lsbin目录下,包含几个脚本用来控制RabbitMQ服务器。
其中:
rabbitmq-server.bat启动broker作为一个应用;
rabbitmq-service.bat管理服务,并启动broker;
rabbitmqctl.bat管理运行的broker。
3.启动RabbitMQ服务器作为一个应用
执行下面指令来启动。
或者直接双击rabbitmq-server.bat脚本。
控制台将输出如下。
修改micro-weather-config-client-bus
在Git仓库中增加了micro-weather-config-client-bus-dev.properties配置信息,该配置主要提供给micro-weather-config-client-bus应用使用。
修改micro-weather-config-client-bus应用,在应用中增加一个VersionController.java,用于演示如何从配置中心实时获取配置信息。VersionController.java 代码如下。
其中,访问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应用拿到了在配置中心的配置。
源码
本节示例所涉及的源码见micro-weather-eureka-server、micro-weather-config-server-bus及 micro-weather-config-client-bus。
本篇文章内容给大家讲解的是如何集成BuS
下篇文章给大家讲解的是实现配置信息的自动更新;
觉得文章不错的朋友可以转发此文关注小编;
感谢大家的支持!
领取专属 10元无门槛券
私享最新 技术干货