spring cloud config 是一个强大的分布式配置中心,用于集中管理微服务架构中的配置信息。它支持多种配置源,如 git、本地文件系统、数据库等,并提供配置的动态刷新功能。本文将详细介绍如何搭建和使用 spring cloud config。
一、搭建配置中心(config server)
1. 创建 config server 项目
使用 spring initializr 创建一个 spring boot 项目,添加以下依赖:
<dependency>
<groupid>org.springframework.cloud</groupid>
<artifactid>spring-cloud-config-server</artifactid>
</dependency>
2. 启用 config server
在项目的主类上添加 @enableconfigserver 注解:
@springbootapplication
@enableconfigserver
public class configserverapplication {
public static void main(string[] args) {
springapplication.run(configserverapplication.class, args);
}
}
3. 配置 git 仓库
在 application.yml 或 application.properties 文件中配置 git 仓库地址:
server:
port: 8888
spring:
cloud:
config:
server:
git:
uri: https://github.com/your-repo/config-repo.git
search-paths: '{application}' # 按应用名查找目录
label: master # 默认分支
4. 启动 config server
运行项目后,访问 http://localhost:8888/{application}/{profile},例如:
curl http://localhost:8888/config/dev
这将返回对应应用和环境的配置信息。
二、配置客户端(config client)
1. 添加依赖
在客户端项目中添加以下依赖:
<dependency>
<groupid>org.springframework.cloud</groupid>
<artifactid>spring-cloud-starter-config</artifactid>
</dependency>
2. 配置客户端
在客户端项目的 bootstrap.yml 文件中配置 config server 的地址和环境:
spring:
application:
name: config-client
cloud:
config:
uri: http://localhost:8888
profile: dev
label: master
bootstrap.yml 的加载优先级高于 application.yml,因此适合用于加载外部配置。
3. 使用配置
在客户端项目中,可以直接通过 @value 或 @configurationproperties 注解使用配置中心的配置信息。例如:
@restcontroller
public class configclientcontroller {
@value("${config.info}")
private string configinfo;
@getmapping("/config")
public string getconfig() {
return configinfo;
}
}
三、核心功能
1. 配置文件的命名规则
spring cloud config 支持以下几种资源路径:
- /{application}-{profile}.yml
- /{label}/{application}-{profile}.yml
- /{application}/{profile}[/{label}]
例如:
- http://localhost:8888/config-client/dev:获取 config-client-dev.yml 文件的配置。
- http://localhost:8888/master/config-client-dev.yml:指定分支 master。
2. 配置加密与安全
为了保护敏感信息,spring cloud config 支持加密配置:
- 配置加密密钥:
encrypt: key: my-secret-key
- 加密数据:
curl http://localhost:8888/encrypt -d "secret123"
- 使用密文:
datasource: password: '{cipher}密文字符串'
3. 动态配置刷新
客户端可以通过调用 /actuator/refresh 端点来刷新配置:
- 添加 actuator 依赖:
<dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-actuator</artifactid> </dependency> - 暴露
refresh端点:management: endpoints: web: exposure: include: refresh - 调用刷新接口:
post http://localhost:8080/actuator/refresh
四、多环境支持
spring cloud config 支持多环境配置,通过 spring.profiles.active 指定环境。例如:
- config-client-dev.yml:开发环境配置
- config-client-prod.yml:生产环境配置
客户端可以通过设置 spring.profiles.active 来加载对应环境的配置。
五、总结
spring cloud config 提供了一个集中化的配置管理解决方案,支持多种配置源、动态刷新和多环境配置。通过简单的配置和依赖添加,即可快速搭建配置中心和客户端。它不仅简化了配置管理的复杂性,还提高了系统的灵活性和可维护性。
到此这篇关于spring cloud config 配置中心使用指南的文章就介绍到这了,更多相关spring cloud config 配置中心内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论