与所有应用程序共享配置
在所有应用程序之间共享配置会根据您采用的方法而有所不同,如下主题所述
基于文件的资源库
对于基于文件的(git、svn 和原生)资源库,文件名中包含 application*
的资源(application.properties
、application.yml
、application-*.properties
等)会在所有客户端应用程序之间共享。您可以使用这些文件名的资源来配置全局默认值,并根据需要由特定于应用程序的文件覆盖它们。
属性覆盖 功能也可用于设置全局默认值,允许应用程序使用占位符在本地覆盖它们。
使用“原生”配置文件(本地文件系统后端)时,应使用不在服务器自身配置中的显式搜索位置。否则,默认搜索位置中的 application* 资源将被移除,因为它们是服务器的一部分。 |
Vault 服务器
当使用 Vault 作为后端时,您可以通过将配置放在 secret/application
中来与所有应用程序共享配置。例如,如果您运行以下 Vault 命令,则所有使用 Config Server 的应用程序都将可以使用属性 foo
和 baz
。
$ vault write secret/application foo=bar baz=bam
CredHub 服务器
当使用 CredHub 作为后端时,您可以通过将配置放在 /application/
中或将其放在应用程序的 default
配置文件中来与所有应用程序共享配置。例如,如果您运行以下 CredHub 命令,则所有使用 Config Server 的应用程序都将可以使用属性 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 列中使用 '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');
有关使用 JDBC 资源库进行设置和配置管理的详细示例,请参阅 JdbcEnvironmentRepository
实现和相关测试。