Consul提供了一個(gè)用于存儲(chǔ)配置和其他元數(shù)據(jù)的鍵/值存儲(chǔ)。Spring Cloud Consul Config是Config Server和Client的替代方案芬沉。在特殊的“引導(dǎo)”階段,配置被加載到Spring環(huán)境中尸疆。默認(rèn)情況下侧馅,配置存儲(chǔ)在/config文件夾中∮钌基于應(yīng)用程序的名稱和模擬解析屬性的Spring Cloud Config順序的活動(dòng)配置文件創(chuàng)建多個(gè)PropertySource實(shí)例九杂。例如,名為“testApp”的應(yīng)用程序和“dev”配置文件將創(chuàng)建以下屬性源:
config/testApp,dev/
config/testApp/
config/application,dev/
config/application/
最具體的物業(yè)來源位于頂部宣蠕,底部最不具體例隆。Properties是config/application文件夾適用于使用consul進(jìn)行配置的所有應(yīng)用程序。config/testApp文件夾中的Properties僅適用于名為“testApp”的服務(wù)實(shí)例抢蚀。
配置當(dāng)前在應(yīng)用程序啟動(dòng)時(shí)被讀取镀层。發(fā)送HTTP POST到/refresh將導(dǎo)致配置被重新加載。觀看關(guān)鍵價(jià)值商店(Consul支持))目前不可能皿曲,但將來將是此項(xiàng)目的補(bǔ)充唱逢。
如何激活
要開始使用Consul配置,請(qǐng)使用組org.springframework.cloud和artifact idspring-cloud-starter-consul-config的啟動(dòng)器屋休。有關(guān)使用當(dāng)前的Spring Cloud發(fā)布列表設(shè)置構(gòu)建系統(tǒng)的詳細(xì)信息坞古,請(qǐng)參閱Spring Cloud項(xiàng)目頁面。
這將啟用自動(dòng)配置劫樟,將設(shè)置Spring Cloud Consul配置痪枫。
定制
Consul可以使用以下屬性定制配置:
bootstrap.yml
spring:
? cloud:
? ? consul:
? ? ? config:
? ? ? ? enabled: true
? ? ? ? prefix: configuration
? ? ? ? defaultContext: apps
? ? ? ? profileSeparator: '::'
enabled將此值設(shè)置為“false”禁用Consul配置
prefix設(shè)置配置值的基本文件夾
defaultContext設(shè)置所有應(yīng)用程序使用的文件夾名稱
profileSeparator設(shè)置用于使用配置文件在屬性源中分隔配置文件名稱的分隔符的值
配置觀察
Consul配置觀察功能可以利用領(lǐng)事看守鑰匙前綴的能力。Config Watch會(huì)阻止Consul HTTP API調(diào)用叠艳,以確定當(dāng)前應(yīng)用程序是否有任何相關(guān)配置數(shù)據(jù)發(fā)生更改奶陈。如果有新的配置數(shù)據(jù),則會(huì)發(fā)布刷新事件附较。這相當(dāng)于調(diào)用/refresh執(zhí)行器端點(diǎn)吃粒。
要更改Config Watch調(diào)用的頻率changespring.cloud.consul.config.watch.delay。默認(rèn)值為1000拒课,以毫秒為單位徐勃。
禁用配置觀察集spring.cloud.consul.config.watch.enabled=false事示。
YAML或Properties配置
與單個(gè)鍵/值對(duì)相反,可以更方便地將YBL或Properties格式的屬性塊存儲(chǔ)起來疏旨。將spring.cloud.consul.config.format屬性設(shè)置為YAML或PROPERTIES很魂。例如使用YAML:
bootstrap.yml
spring:
? cloud:
? ? consul:
? ? ? config:
? ? ? ? format: YAML
YAML必須在合適的data鍵中設(shè)置。使用鍵上面的默認(rèn)值將如下所示:
config/testApp,dev/data
config/testApp/data
config/application,dev/data
config/application/data
您可以將YAML文檔存儲(chǔ)在上述任何鍵中檐涝。
您可以使用spring.cloud.consul.config.data-key更改數(shù)據(jù)密鑰遏匆。