|
对于最新的稳定版本,请使用Spring Cloud Config 5.0.0! |
复合环境仓库
在某些情况下,你可能希望从多个环境仓库拉取配置数据。
为此,你可以启用复合配置文件存储在您的配置服务器的应用属性或 YAML 文件中。
例如,如果你想从Subversion仓库和两个Git仓库拉取配置数据,你可以为配置服务器设置以下属性:
spring:
profiles:
active: composite
cloud:
config:
server:
composite:
-
type: svn
uri: file:///path/to/svn/repo
-
type: git
uri: file:///path/to/rex/git/repo
-
type: git
uri: file:///path/to/walter/git/repo
使用这种配置,优先级由仓库在复合钥匙。
在上述例子中,Subversion 仓库被列在最前面,因此 Subversion 仓库中的值会覆盖 Git 仓库中同一属性的值。
一个在雷克斯在找到相同属性的值之前,会先使用Git仓库沃尔特git仓库。
如果你只想从不同类型的仓库拉取配置数据,可以启用对应的配置文件,而不是复合配置文件,在你的配置服务器应用属性或YAML文件中。
例如,如果你想从单个 Git 仓库和单个 HashiCorp Vault 服务器中提取配置数据,你可以为配置服务器设置以下属性:
spring:
profiles:
active: git, vault
cloud:
config:
server:
git:
uri: file:///path/to/git/repo
order: 2
vault:
host: 127.0.0.1
port: 8200
order: 1
利用此配置,优先级可通过次序财产。
你可以使用次序属性指定所有仓库的优先级顺序。
数值越低次序财产优先级越高。
存储库的优先级排序有助于解决包含相同属性值的仓库之间可能存在的冲突。
| 如果你的复合环境包含如前述示例中的 Vault 服务器,你必须在每个向配置服务器发出的请求中包含 Vault Tokens。参见Vault Backend。 |
从环境仓库检索值时发生任何类型的失败,都会导致整个复合环境的失败。
如果你希望复合视频即使在仓库失败时也能继续,可以设置spring.cloud.config.server.failOnCompositeError自false. |
使用复合环境时,重要的是所有仓库包含相同的标签。
如果你有一个类似上述示例的环境,并且你请求配置数据主人但 Subversion 仓库中没有一个名为主人,整个请求失败。 |
自定义复合环境仓库
除了使用Spring Cloud的环境仓库外,你还可以提供自己的环境仓库环境仓库豆子将作为复合环境的一部分被纳入。
为此,你的豆子必须实现环境仓库接口。
如果你想控制自定义的优先级环境仓库在复合环境中,你还应实现命令接口并覆盖getOrdered方法。
如果你不实现命令接口,你的环境仓库被赋予最低优先级。