spring cloud: 使用consul来替换config server
上一篇提到了,eureka 2.x官方停止更新后,可以用consul來替代,如果采用consul的話,其實(shí)config server也沒必要繼續(xù)使用了,consul自帶kv存儲(chǔ),完全可以取代config server的活兒。
?
步驟如下:
一、先添加jar依賴
// compile 'org.springframework.cloud:spring-cloud-starter-config'compile 'org.springframework.cloud:spring-cloud-starter-consul-config'?之前config server的依賴去掉,換成consul-config的依賴即可。
?
二、修改bootstrap.yml文件
1 spring: 2 ... 3 cloud: 4 consul: 5 host: 127.0.0.1 6 port: 8500 7 discovery: 8 tags: version=1.0,author=yjmyzz 9 healthCheckPath: /info.json 10 healthCheckInterval: 5s 11 instanceId: ${spring.application.name}:${spring.cloud.client.ipAddress} 12 enabled: true 13 config: 14 enabled: true 15 format: YAML 16 prefix: config 17 defaultContext: application 18 profileSeparator: ',' 19 data-key: data 20 # config: 21 # label: dev 22 # discovery: 23 # enabled: true 24 # service-id: my-config-server 25 # fail-fast: true 26 # retry: 27 # max-interval: 1500 28 # max-attempts: 5 29 # multiplier: 1.2關(guān)鍵是13-19行,解釋一下:
15行 format:YAML 表示consul中的key-value中的value內(nèi)容,采用YAML格式
16行 prefix: config 表示consul用于存儲(chǔ)配置的文件夾根目錄名為config
17行 defaultContext: application 表示配置文件對(duì)應(yīng)的應(yīng)用名稱(eg: 你的服務(wù)如果打算取名為myApp,則這里的application就要換成myApp)
18行?profileSeparator: ',' 表示如果有多個(gè)profile(eg: 開發(fā)環(huán)境dev,測(cè)試環(huán)境test...) ,則key名中的profile與defaultContext之間,用什么分隔符來表示(這里有點(diǎn)費(fèi)解,后面還會(huì)詳細(xì)解釋)
19行 data-key: data 表示最后一層節(jié)點(diǎn)的key值名稱,一般默認(rèn)為data
?
三、consul中創(chuàng)建kv配置節(jié)點(diǎn)
很多文章,包括官方文檔這一步都講得不明不白,關(guān)鍵是 節(jié)點(diǎn)名稱的命名規(guī)則,要與bootstrap.yml中的配置一樣,比如我們要?jiǎng)?chuàng)建一個(gè)test環(huán)境的配置,key名可以取為:
config/application,test/data
這里每一個(gè)部分,都要與上一步bootstrap.yml中的一致,上圖中5個(gè)剪頭所指,大家結(jié)合上一步中15-19行的解釋體會(huì)一下。
然后Value值的部分,把配置內(nèi)容按yml格式填進(jìn)去就行:
tips: 平時(shí)開發(fā)時(shí),一般使用consul dev模式,開發(fā)模式下kv存儲(chǔ)不會(huì)持久化存儲(chǔ),全在內(nèi)存中(重啟consul就丟了!),所以一般建議yml配置文件內(nèi)容,在項(xiàng)目中單獨(dú)存一個(gè)文件,啟動(dòng)調(diào)試時(shí),直接把配置文件內(nèi)容貼到Value框里即可。
好了,現(xiàn)在你可以試著啟動(dòng)下,順利的話,應(yīng)該就可以了,是不是很簡(jiǎn)單,關(guān)鍵還省掉了config server的部署,幫公司省了機(jī)器,別忘了讓領(lǐng)導(dǎo)給你加績(jī)效哦^_^?
?
如果希望用代碼的方式來讀/寫 KV存儲(chǔ),可以用下面的方式:
讀:
curl?http://localhost:8500/v1/kv/config/application,dev/data?raw=true
?
?
參考文檔:
1、spring cloud consul 中文文檔
2、spring cloud consul 官方文檔(英文)
3、KV Store Endpoints
?
總結(jié)
以上是生活随笔為你收集整理的spring cloud: 使用consul来替换config server的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用莫比乌斯带巧解内接矩形问题:拓扑学的用
- 下一篇: saltstack配置apache