提到了,eureka 2.x官方停止更新後,可以用consul來替代,如果采用consul的話,其實
config server也沒必要繼續使用了,consul自帶kv存儲,完全可以取代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
關鍵是13-19行,解釋一下:
15行 format:YAML 表示consul中的key-value中的value内容,采用YAML格式
16行 prefix: config 表示consul用于存儲配置的檔案夾根目錄名為config
17行 defaultContext: application 表示配置檔案對應的應用名稱(eg: 你的服務如果打算取名為myApp,則這裡的application就要換成myApp)
18行 profileSeparator: ',' 表示如果有多個profile(eg: 開發環境dev,測試環境test...) ,則key名中的profile與defaultContext之間,用什麼分隔符來表示(這裡有點費解,後面還會詳細解釋)
19行 data-key: data 表示最後一層節點的key值名稱,一般預設為data
三、consul中建立kv配置節點
很多文章,包括官方文檔這一步都講得不明不白,關鍵是 節點名稱的命名規則,要與bootstrap.yml中的配置一樣,比如我們要建立一個test環境的配置,key名可以取為:
config/application,test/data
這裡每一個部分,都要與上一步bootstrap.yml中的一緻,上圖中5個剪頭所指,大家結合上一步中15-19行的解釋體會一下。
然後Value值的部分,把配置内容按yml格式填進去就行:
tips: 平時開發時,一般使用consul dev模式,開發模式下kv存儲不會持久化存儲,全在記憶體中(重新開機consul就丢了!),是以一般建議yml配置檔案内容,在項目中單獨存一個檔案,啟動調試時,直接把配置檔案内容貼到Value框裡即可。
好了,現在你可以試着啟動下,順利的話,應該就可以了,是不是很簡單,關鍵還省掉了config server的部署,幫公司省了機器,别忘了讓上司給你加績效哦^_^
參考文檔:
1、
spring cloud consul 中文文檔2、
spring cloud consul 官方文檔(英文)作者:
菩提樹下的楊過出處:
http://yjmyzz.cnblogs.com本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利。