|
此版本仍在开发中,目前尚不稳定。如需最新稳定版本,请使用 Spring Cloud Config 5.0.1! |
与所有应用程序共享配置
在所有应用程序之间共享配置的方式取决于您采用的方法,具体如下文所述:
文件存储库
对于基于文件的(git、svn 和本地)仓库,文件名为 application*(application.properties、application.yml、application-*.properties 等)的资源会在所有客户端应用之间共享。您可以使用这些文件名的资源来配置全局默认值,并根据需要由特定于应用程序的文件进行覆盖。
属性覆盖(property overrides)功能也可用于设置全局默认值,允许各应用在本地覆盖这些默认值。
使用“原生”配置文件(本地文件系统后端)时,应使用显式的搜索位置,该位置不应属于服务器自身的配置。否则,默认搜索位置中的 application* 资源会被移除,因为它们属于服务器本身。 |
Vault Server
当使用 Vault 作为后端时,您可以通过将配置放在 secret/application 中,与所有应用程序共享配置。例如,如果您运行以下 Vault 命令,则所有使用配置服务器的应用程序都将获得 foo 和 baz 这两个属性:
$ vault write secret/application foo=bar baz=bam
可信中心服务器
当使用 CredHub 作为后端时,您可以通过将配置放在 /application/ 中,或为应用程序在 default 配置文件中放置配置,从而与所有应用程序共享配置。例如,如果您运行以下 CredHub 命令,则所有使用配置服务器的应用程序都将能够访问属性 shared.color1 和 shared.color2:
credhub set --name "/application/profile/master/shared" --type=json
value: {"shared.color1": "blue", "shared.color": "red"}
credhub set --name "/my-app/default/master/more-shared" --type=json
value: {"shared.word1": "hello", "shared.word2": "world"}
JDBC 环境存储库
要使用 JDBC 后端共享配置,请在数据库中插入记录,并将应用列的值设为 'application',以表示该配置适用于所有客户端。应用特定的属性随后可覆盖这些共享配置,从而为您的应用环境提供灵活性与控制力。
INSERT INTO PROPERTIES (APPLICATION, PROFILE, LABEL, KEY, VALUE)
VALUES ('application', 'default', 'master', 'a.b.c', 'shared-value');
INSERT INTO PROPERTIES (APPLICATION, PROFILE, LABEL, KEY, VALUE)
VALUES ('myapp', 'prod', 'master', 'd.e.f', 'specific-value');
请参考 JdbcEnvironmentRepository 实现及其相关测试,以获取有关使用 JDBC 存储库进行设置和配置管理的详细示例。