spring cloud配置最佳实践?

时间:2016-12-08 01:36:35

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

对于基于spring的项目,例如,有eureka config(eureka.properties),zuul config(zuul.properties),feign config(feign.properties)等。

还有一些环境,如dev,test,staging,如application-dev.properties,application-prod.properties。

在将spring cloud配置引入项目之后,我们可以将所有配置文件保存到git repo,但是如何很好地组织这些配置文件呢?并最小化spring cloud客户端项目的配置?

1 个答案:

答案 0 :(得分:1)

似乎我在开始时错误地理解了spring cloud配置,并附有文档

  

HTTP服务具有以下形式的资源:

/{application}/{profile}[/{label}]
/{application}-{profile}.yml
/{label}/{application}-{profile}.yml
/{application}-{profile}.properties
/{label}/{application}-{profile}.properties
     

"应用程序"在>中注入spring.config.name SpringApplication(即通常"应用程序"在常规Spring Boot>应用程序中)," profile"是一个活动的配置文件(或逗号分隔的属性列表),> "标签"是一个可选的git标签(默认为" master"。)

使用spring cloud config内置机制,spring cloud config会将所有属性公开为REST资源,所以其中:

  • 应用程序是Spring启动客户端项目spring.application.name
  • 个人资料是Spring启动客户端项目中的spring.profiles.active
  • 标签是git分支名称,其中git git repo由spring cloud配置服务器特定,例如spring.cloud.config.server.git.uri

然后,客户可以GET违反上述规则的所有属性。

通常对于spring boot客户端项目,只需要配置spring cloud配置服务器,如:

spring:
  application:
    name: eureka
  cloud:
    config: 
      uri: http://localhost:8888
  profiles:
    active: dev, prod

因此,客户端将GET Spring云配置服务器中的所有属性:eureka-dev.ymleureka-prod.yml