與所有應用程式共用組態

在所有應用程式之間共用組態,會根據您採用的方法而有所不同,如下列主題所述

檔案型儲存庫

對於檔案型(git、svn 和 native)儲存庫,檔案名稱為 application*application.propertiesapplication.ymlapplication-*.properties 等等)的資源會在所有用戶端應用程式之間共用。您可以使用這些檔案名稱的資源來設定全域預設值,並視需要讓應用程式專屬檔案覆寫這些預設值。

屬性覆寫 功能也可用於設定全域預設值,並允許佔位符應用程式在本機覆寫它們。

使用「native」profile(本機檔案系統後端)時,您應該使用明確的搜尋位置,該位置不屬於伺服器自身的組態。否則,預設搜尋位置中的 application* 資源會被移除,因為它們是伺服器的一部分。

Vault 伺服器

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

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

CredHub 伺服器

當使用 CredHub 作為後端時,您可以將組態放置在 /application/ 中,或將其放置在應用程式的 default profile 中,以與所有應用程式共用組態。例如,如果您執行下列 CredHub 命令,則所有使用 Config 伺服器的應用程式都將可以使用屬性 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 儲存庫進行設定和組態管理的詳細範例。