- 下载软件Erlang(RabbitMQ需要)和RabbitMQ,根据安装提示一步步安装软件
- 在软件的安装目录(rabbitmq_server-3.9.13\sbin)sbin下打开cmd输入命令安装插件,安装完后可在开始菜单的RabbitMQ中看到插件的快捷方式
rabbitmq-plugins enable rabbitmq_management
- 运行插件star启动RabbitMQ,如果运行失败则到安装目录sbin下启动cmd运行命令,启动RabbitMQ
rabbitmq-server start
- 进入网址(默认端口为15672),登陆(帐密均为guest)RabbitMQ,即可看到管理页面
- 首先来配置config server,首先是依赖,
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bus-amqp</artifactId>
<version></version>
</dependency>
<!--暴露对外刷新接口-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
<version></version>
</dependency>
然后是yml,配置好后在启动类上添加注解@EnableConfigServer,这样就配置好了config server
# 暴露刷新接口bus-refresh
management:
endpoints:
web:
exposure:
include: bus-refresh
spring:
cloud:
config:
server:
git:
# git的地址
uri: https://gitee.com/xxx/xxx.git
# master分支
default-label: master
rabbitmq:
# rabbitmq的host
host: 127.0.0.1
# port
port: 5672
# username
username: guest
# password
password: guest
- 配置config client,这里要保证两个及以上的config client,方便查看效果。首先是依赖
spring:
cloud:
config:
# 分支名称
label: master
# 配置名
name: config
# 配置的profile
profile: dev
config:
# 导入配置的位置(config server的地址)
import: configserver:http://localhost:8083
management:
endpoints:
web:
exposure:
# 暴露所有端口
include: "*"
然后是写Controller的接口,以下代码为示例,在复制一份,这样就做完了两个config client
@Value("${config.info}")
private String config;
@RequestMapping("/config")
public String getConfig(){
return config;
}
- 首先访问两个config client的接口,发现获取到的值为git上的值。
- 然后我们修改git上的值,然后刷新两个config client的接口发现并未变化
- 我们需要发送一个post请求来通知config server配置已经变化,让他通知其他的config client修改配置,可以用win的cmd命令行输入以下命令
curl -X POST "http://localhost:8083/actuator/bus-refresh"
- 通知后再刷新两个config client,这时可以发现他们两个的值均为修改后的最新值。