1.将配置文件编写在Git仓库
2.通过ConfigServer拉取Git仓库中的配置信息
3.其他服务作为ConfigClient与ConfigServer进行交互,拉取相应的配置信息
配置ConfigServer的pom依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-cloud-starter-web</artifactId>
</dependency>
在启动类添加注解@EnableConfigServer
添加配置文件
spring:
cloud:
config:
server:
git:
basedir: D:\basedir # 本地仓库的地址
username: zjw_2301211@126.com # 远程仓库用户名
password: z123123 # 远程仓库密码
uri: https://gitee.com/zhengdaxian/config-resp.git # 远程仓库地址
启动项目访问Git上面的配置信息http://localhost:port/{branch}/{application}-{profile}.yml 在ConfigServer无问题后在尝试连接Config-Client
ConfigClient要通过ConfigServer交互获取到Git上的配置文件信息
创建SpringBoot项目,并配置依赖
//第一个依赖不一定对
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-cloud-starter-web</artifactId>
</dependency>
修改为bootstrap.yml配置文件
# 指定Eureka服务地址
eureka:
client:
service-url:
defaultZone: http://root:root@localhost:8761/eureka,http://root:root@localhost:8762/eureka
#指定服务的名称
spring:
application:
name: CUSTOMER-${version}
cloud:
config:
discovery:
enabled: true
service-id: CONFIG
profile: dev
version: v1
# CONFIG -> CUSTOMER-v1-dev.yml
通过上述配置获取:http://configserver的地址/分支/服务名称/-环境.yml 运行结果
小结:后续在Git上添加配置文件时,推荐先在项目中编写,在复制过去(idea中有提示)
需要广播的加依赖(configServer)
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-cloud-starter-actuator</artifactId>
</dependency>
修改configServer配置文件
spring:
rabbitmq:
host: 192.168.199.109
port: 5672
username: test
password: test
virtual-host: /test
management:
endpoints:
web:
exposure:
include: "*"
其他项目(configClient)也添加依赖和修改配置,让它们也能修改yml文件
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>
spring:
rabbitmq:
host: 192.168.199.109
port: 5672
username: test
password: test
virtual-host: /test
为controller类添加注解@RefreshScope,实现动态刷新
测试功能: 1.访问configclient中的/version路径 — v1.0.0 修改Git仓库中的配置,将v1…0.0修改为v2.0.0 手动法发送请求给ConfigServer:http://ip:port/actuator/bus-refresh,不重启项目,CONFIG在Gitee修改之后,configclient是自动拉取最新配置信息的