Consul K/V DATA
除了提供服務發現和綜合健康檢查,Consul還提供了一個易於使用的鍵/值儲存。這可以用來儲存動態配置,協助服務協調,建立領導人選舉,並啟用其他開發人員可以想構建的任何其他內容。
這個步驟假設您至少有一個Consul代理已經執行。
簡單用法
為了演示如何簡單的開始,我們將操作K/V儲存中的幾個鍵。有兩種方法可以使用:通過HTTP API和通過CLI API。
下面的例子顯示使用CLI API,因為它是最簡單的開始。對於更高階的整合,您可能想要使用HTTP API。
首先讓我們探索KV儲存。我們可以問Consul redis/config/minconns 鍵的值。
$ consul kv get redis/config/minconns
Error! No key exists at: redis/config/minconns
你將看到沒有結果返回,由於KV儲存中沒有該鍵返回了一個錯誤,接下來我們將插入或”put”一個值到KV儲存中。
$ consul kv put redis/config/minconns 1
Success! Data written to: redis/config/minconns
$ consul kv put redis/config/maxconns 25
Success! Data written to: redis/config/maxconns
$ consul kv put -flags =42 redis/config/users/admin abcd1234
Success! Data written to: redis/config/users/admin
現在再次查詢該鍵你將看到如下結果:
$ consul kv get redis/config/minconns
1
Consul保留額外的元資料在該欄位,你可以使用-detailed
標誌檢索詳細資訊:
$ consul kv get -detailed redis/config/minconns
CreateIndex 207
Flags 0
Key redis/config/minconns
LockIndex 0
ModifyIndex 207
Session -
Value 1
對於”redis/config/users/admin”鍵我們可以設定flag
值為42.所有的鍵都支援設定一個64位的整型值。
這不是Consul內部使用的,但是它可以用來被客戶新增有意義的元資料到任何鍵值。
使用`recurse`選項可以列出KV儲存中所有keys,返回的結果將按照字母排序。
$ consul kv get -recurse
redis/config/maxconns:25
redis/config/minconns:1
redis/config/users/admin:abcd1234
使用delete
命令刪除KV儲存中指定的key。
$ consul kv delete redis/config/minconns
Success! Deleted key: redis/config/minconns
還可以使用recurse
選項遞迴選項刪除含某個字首的所有keys:
$ consul kv delete -recurse redis
Success! Deleted keys with prefix: redis
為了更新一個存在鍵的值,可以put
一個新值在同樣的路徑上。
$ consul kv put foo bar
$ consul kv get foo
bar
$ consul kv put foo zip
$ consul kv get foo
zip
Consul可以使用Check_And_set提供原子鍵更新操作。執行CAS操作時需指定-cas
標誌。
$ consul kv put -cas -modify-index=123 foo bar
Success! Data written to: foo
$ consul kv put -cas -modify-index=123 foo bar
Error! Did not write to foo: CAS failed
在這個例子中,第一個CAS更新成功,因為ModifyIndex的值是123。然後第二次操作失敗,因為ModifyIndex的值不再是123。
下一步
這些只是API支援的幾個小例子。完整的文件,請參閱HTTP API或CLI API。
接下來,我們將看看Consul支援的web UI。