與所有應用程式共享配置

根據您所採用的方法,所有應用程式之間的配置共享方式有所不同,具體如下所述。

基於檔案的儲存庫

對於基於檔案的(git、svn 和 native)儲存庫,檔名包含 application*(如 application.propertiesapplication.ymlapplication-*.properties 等)的資源將在所有客戶端應用程式之間共享。您可以使用這些檔名的資源來配置全域性預設值,並在必要時透過特定於應用程式的檔案進行覆蓋。

屬性覆蓋功能也可用於設定全域性預設值,其中允許應用程式在本地覆蓋佔位符。

使用“native”配置檔案(本地檔案系統後端)時,您應該使用一個不屬於伺服器自身配置的顯式搜尋位置。否則,預設搜尋位置中的 application* 資源將被移除,因為它們是伺服器的一部分。

Vault 伺服器

當使用 Vault 作為後端時,您可以透過將配置放置在 secret/application 中來與所有應用程式共享配置。例如,如果您執行以下 Vault 命令,所有使用配置伺服器的應用程式都將擁有屬性 foobaz

$ vault write secret/application foo=bar baz=bam

CredHub 伺服器

當使用 CredHub 作為後端時,您可以透過將配置放置在 /application/ 中或放置在應用程式的 default 配置檔案中來與所有應用程式共享配置。例如,如果您執行以下 CredHub 命令,所有使用配置伺服器的應用程式都將擁有屬性 shared.color1shared.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 儲存庫進行設定和配置管理的詳細示例。

© . This site is unofficial and not affiliated with VMware.