搭建配置总控中心
- github上新建仓库
- 建模块添加依赖
- 修改yml
cloud:
config:
server:
git:
username: #####
password: #####
uri: https://github.com/illfg/Config-Center.git
#根目录
search-paths:
- Config-Center
label: master
4.添加映射(可选 host文件中 127.0.0.1 config-2333.com )
5.启动类上添加注解@EnableConfigServer
客户端搭建
bootstrap.yml 配置文件 优先级高于application.yml 可以将控制中心的配置文件放入bootstrap中,用户自己的放入application中
1.新建bootstrap.yml
cloud:
config:
label: master
name: config
profile: dev
uri: http://localhost:2333
consul:
port: 8500
host: localhost
discovery:
service-name: ${spring.application.name}
自测
@Value("${config}")
String config;
@RequestMapping("getConfig")
@ResponseBody
public String test(){
return config;
}
客户端动态刷新问题
1.添加actuator依赖
2.暴露监控端口
management:
endpoints:
web:
exposure:
include: refresh,health
3.controller上添加@RefreshScope
@Controller
@RefreshScope
public class TestHandler {
@Value("${config}")
String config;
@RequestMapping("getConfig")
@ResponseBody
public String test(){
return config;
}
}
4.当配置文件修改时,需要发送一个post请求给客户端,使其刷新
http://localhost:2333/actuator/refresh
但是通过请求每一个微服务获得刷新过于麻烦,故我们可以借助Bus消息总线
Bus消息总线
安装环境
1.下载安装Erlang https://www.erlang.org/downloads
2.下载安装rabbitMQ https://www.rabbitmq.com/install-windows.html#installer
3.进入RabbitMQ安装目录下的sbin,执行命令rabbitmq-plugins enable rabbitmq_management 安装
4.访问local host:15672查看是否安装成功 --要先启动服务
5.默认账号密码:guest guest
使用
服务端:
1.添加消息总线rabbitMQ支持
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
2.yml配置
rabbitmq:
host: localhost
port: 5672
username: guest
password: guest
management:
endpoints:
web:
exposure:
include: "bus-refresh"
客户端:
1.添加依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
2.yml配置
rabbitmq:
host: localhost
port: 5672
username: guest
password: guest
当GitHub配置文件刷新后,给配置中心发送一个post请求即可
http://localhost:2333/actuator/bus-refresh
通知指定的客户端
http://localhost:2333/actuator/bus-refresh/服务名:端口号