春季云配置最佳实践?
Posted
技术标签:
【中文标题】春季云配置最佳实践?【英文标题】:spring cloud config best practice? 【发布时间】:2017-04-23 03:48:10 【问题描述】:例如基于spring的项目,有eureka config(eureka.properties)、zuul config(zuul.properties)、feign config(feign.properties)等。
还有多个环境,例如开发、测试、登台,例如 application-dev.properties、application-prod.properties。
在项目中引入spring cloud config后,我们可以将所有配置文件保存到git repo,但是如何组织好这些配置文件呢?并最小化spring cloud客户端项目的配置?
【问题讨论】:
加载环境特定属性(即application.properties
和application-[profile].properties
)的相同规则适用于从配置服务器加载的属性。它也适用于bootstrap.properties
和bootstrap-[profile].properties
...
@M.Deinum 是的,对于不同的环境,它可以使用 application-[profile].properties 方法,谢谢。
【参考方案1】:
好像我一开始误解了spring cloud config,documentation
HTTP 服务具有以下形式的资源:
/application/profile[/label] /application-profile.yml /label/application-profile.yml /application-profile.properties /label/application-profile.properties
“应用程序”作为 spring.config.name 在 > SpringApplication 中注入(即在常规 Spring Boot > 应用程序中通常是“应用程序”),“配置文件”是一个活动配置文件(或逗号分隔属性列表),并且 > “label” 是一个可选的 git 标签(默认为“master”。)
使用 spring cloud config 内置机制,spring cloud config 会将所有属性公开为 REST 资源,所以在哪里:
application是spring boot客户端项目spring.application.name
profile是spring boot客户端项目中的spring.profiles.active
label 是 git git repo 特定于 spring cloud config server 的 git 分支名称,例如spring.cloud.config.server.git.uri
然后客户端可以GET
所有属性违反上述规则。
通常对于spring boot客户端项目,只需要配置spring cloud config server,如下:
spring:
application:
name: eureka
cloud:
config:
uri: http://localhost:8888
profiles:
active: dev, prod
所以客户端将GET
所有属性:eureka-dev.yml
和eureka-prod.yml
在spring cloud config server中。
【讨论】:
以上是关于春季云配置最佳实践?的主要内容,如果未能解决你的问题,请参考以下文章