spring 云配置最佳实践?
spring cloud config best practice?
对于基于spring的项目,例如有eureka config(eureka.properties)、zuul config(zuul.properties)、feign config(feign.properties)等..
还有开发、测试、登台等多种环境,如application-dev.properties、application-prod.properties。
将spring云配置引入项目后,我们可以将所有配置文件保存到git repo,但是如何组织好这些配置文件呢?并最小化 spring 云客户端项目的配置?
看来我一开始误解了spring云配置,documentation
The HTTP service has resources in the form:
/{application}/{profile}[/{label}]
/{application}-{profile}.yml
/{label}/{application}-{profile}.yml
/{application}-{profile}.properties
/{label}/{application}-{profile}.properties
where the "application" is injected as the spring.config.name in the > SpringApplication (i.e. what is normally "application" in a regular Spring Boot > app), "profile" is an active profile (or comma-separated list of properties), and > "label" is an optional git label (defaults to "master".)
使用 spring 云配置内置机制,spring 云配置会将所有属性公开为 REST 资源,因此:
- application 是 spring 引导客户端项目
spring.application.name
- profile 是 spring 引导客户端项目中的
spring.profiles.active
- label 是 git 分支名称,其中 git git repo 由 spring 云配置服务器指定,例如
spring.cloud.config.server.git.uri
然后客户端可以GET
所有属性违反上述规则。
通常对于 spring 引导客户端项目,只需要像这样配置 spring 云配置服务器:
spring:
application:
name: eureka
cloud:
config:
uri: http://localhost:8888
profiles:
active: dev, prod
因此客户端将GET
spring 云配置服务器中的所有属性:eureka-dev.yml
和eureka-prod.yml
。
对于基于spring的项目,例如有eureka config(eureka.properties)、zuul config(zuul.properties)、feign config(feign.properties)等..
还有开发、测试、登台等多种环境,如application-dev.properties、application-prod.properties。
将spring云配置引入项目后,我们可以将所有配置文件保存到git repo,但是如何组织好这些配置文件呢?并最小化 spring 云客户端项目的配置?
看来我一开始误解了spring云配置,documentation
The HTTP service has resources in the form:
/{application}/{profile}[/{label}] /{application}-{profile}.yml /{label}/{application}-{profile}.yml /{application}-{profile}.properties /{label}/{application}-{profile}.properties
where the "application" is injected as the spring.config.name in the > SpringApplication (i.e. what is normally "application" in a regular Spring Boot > app), "profile" is an active profile (or comma-separated list of properties), and > "label" is an optional git label (defaults to "master".)
使用 spring 云配置内置机制,spring 云配置会将所有属性公开为 REST 资源,因此:
- application 是 spring 引导客户端项目
spring.application.name
- profile 是 spring 引导客户端项目中的
spring.profiles.active
- label 是 git 分支名称,其中 git git repo 由 spring 云配置服务器指定,例如
spring.cloud.config.server.git.uri
然后客户端可以GET
所有属性违反上述规则。
通常对于 spring 引导客户端项目,只需要像这样配置 spring 云配置服务器:
spring:
application:
name: eureka
cloud:
config:
uri: http://localhost:8888
profiles:
active: dev, prod
因此客户端将GET
spring 云配置服务器中的所有属性:eureka-dev.yml
和eureka-prod.yml
。