【问题标题】: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 方法,谢谢。

标签: spring spring-boot spring-cloud spring-cloud-config


【解决方案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中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-29
    • 2016-05-03
    • 1970-01-01
    • 2016-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多