实现步骤
- 搭建Spring Cloud Config Server:
- 引入依赖,在
pom.xml
中添加Spring Cloud Config Server相关依赖。
- 配置
application.properties
或application.yml
,指定配置文件存储位置,例如使用Git仓库存储配置文件,则需配置Git仓库地址等信息。
- 在主启动类上添加
@EnableConfigServer
注解开启配置服务。
- 客户端配置:
- 引入Spring Cloud Config Client依赖。
- 在
bootstrap.properties
或bootstrap.yml
中配置连接Config Server的信息,如服务地址、应用名称、环境等。例如:
spring:
application:
name: your - service - name
cloud:
config:
uri: http://config - server - address
profile: dev # 可根据环境替换为test、prod等
label: master # 若使用Git,指定分支
- 配置文件管理:
- 在配置中心存储的Git仓库中,按照一定规则创建配置文件。例如,应用名为
your - service - name
,开发环境配置文件命名为your - service - name - dev.properties
或your - service - name - dev.yml
,测试环境为your - service - name - test.properties
,生产环境为your - service - name - prod.properties
。
- 配置文件中定义各环境特有的配置项,如数据库连接地址、日志级别等。
原理
- 配置读取流程:
- 微服务启动时,首先加载
bootstrap.properties
或bootstrap.yml
中的配置,根据其中配置的Config Server地址去请求配置。
- Config Server根据客户端传递的应用名称、环境(profile)和标签(label,若使用Git),从对应的配置文件中读取配置内容并返回给客户端。
- 客户端获取到配置后,将其应用到微服务的运行时环境中。
- 动态刷新:
- 配合Spring Cloud Bus和Actuator,当配置文件在配置中心更新后,可以通过消息总线(如RabbitMQ或Kafka)通知各个微服务客户端,客户端通过Actuator的
/refresh
端点(默认)触发配置的重新加载,实现动态更新配置,无需重启微服务。