Spring Cloud Config + Spring Cloud Bus + RabbitMQ 实现配置文件实时更新
概述
demo结构
父工程:
- springcloud-billmanager
子工程:
- 用户微服务:bill-service,端口号:9091
- 配置中心微服务:config-server,端口号:12000
- 网关:czn-gateway,端口号:8086
- 注册中心:eureka-server,端口号:10086
任务
用户微服务bill-service的配置文件存放在Git仓库中,想要实现:在gitee中修改该配置文件,bill-service不需要重启就能获取最新的配置文件信息。
注意:如果不使用Spring Cloud Bus + RabbitMQ,而只有Spring Cloud Config的话,只有重启用户微服务,才能获取最新的配置文件。
如有表述不当的地方,欢迎指正~
RabbitMQ的安装与启动
参考资料:RabbitMQ的下载与安装与启动
1.下载并安装erlang
因为RabbitMQ是基于erlang语言开发的,所以要安装erlang语言的开发环境
2.下载并安装RabbitMQ
3.启动RabbitMQ
打开命令行界面,进入到RabbitMQ安装包的sbin目录下,输入指令:
rabbitmq-plugins enable rabbitmq_management
4.浏览器地址栏输入localhost:15672,可以看到登录页面,密码与账户都是默认为:guest。然后就可以访问RabbitMQ可视化界面了。
改造配置中心微服务config-server
pom.xml依赖包引入
添加依赖包:spring-boot-starter-actuator、spring-cloud-starter-bus-amqp、spring-cloud-bus、spring-cloud-starter-stream-rabbit ,这几个是实现配置文件实时更新需要的。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>springcloud-billmanager</artifactId>
<groupId>com.czn</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>config-server</artifactId>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
<!--spring cloud bus自动刷新配置文件,与码云上的配置文件同步-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-bus</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>