【问题标题】:Split Yaml configuration files in order to share sections with many Springboot instance拆分 Yaml 配置文件以便与许多 Springboot 实例共享部分
【发布时间】:2020-07-22 11:03:42
【问题描述】:

我正在做一个由许多 Springboot 微服务组成的项目。每个微服务都有其专用的配置文件。但是,在配置中,为了避免重复

,我想将通用部分外化

我们以两个微服务 M1 和 M2 为例

M1 的application.yaml 是:

specific: "M1 specific"
common:
  common1: "common parameter"
  common2: true

而M2的application.yaml是:

specific: "M2 specific"
common:
  common1: "common parameter"
  common2: true

我的目标是

  • 每个微服务都有自己的application.yaml,仅包含其特定配置
  • 但每个特定的配置文件都会引用包含通用配置的外部化 YAML

这样做,我的例子会变成:

对于M1的application.yaml

specific: "M1 specific"
common-configuration: "/tmp/common.yaml"

对于M2的application.yaml

specific: "M2 specific"
common-configuration: "/tmp/common.yaml"

对于“外部化”配置/tmp/common.yaml,类似

common:
  common1: "common parameter"
  common2: true

你知道是否可行吗?

  • 如果是的话,该怎么做?
  • 如果不是,还有什么替代解决方案?

感谢您的帮助

【问题讨论】:

  • 把普通的东西放在常规的application.yml中,把特定的东西放在配置文件特定的文件application-M1.yml中,然后使用配置文件来控制要加载哪些附加文件(或使用--spring.config.additional-location来指定显式文件。或者在 jar 旁边放置一个application.yml,这将优先于(对于属性)默认提供的文件。

标签: java spring spring-boot yaml


【解决方案1】:

几天前我做了一个类似的练习。您需要将 application.yml 作为通用配置文件,每个应用程序调用配置服务器时都会下载该文件。所有特定于应用程序的配置文件的名称都应与spring.application.name 属性相同。

Here 是我在 git 中的配置仓库的链接,供您参考。

【讨论】:

    猜你喜欢
    • 2014-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多