春季云配置最佳实践?

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.propertiesapplication-[profile].properties)的相同规则适用于从配置服务器加载的属性。它也适用于bootstrap.propertiesbootstrap-[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.ymleureka-prod.yml在spring cloud config server中。

【讨论】:

以上是关于春季云配置最佳实践?的主要内容,如果未能解决你的问题,请参考以下文章

阿里云 CDN HTTPS 最佳实践系列——动态证书

弹性配置为构建提速 - CODING & 腾讯云 CVM 最佳实践

Nacos配置安全最佳实践

云原生部署之Helm最佳实践(上)

ES 最佳实践配置

袋鼠云春季生长大会最新议程来啦!4月20日我们云上见