Etcd說明

Etcd是一個高可用的 Key/Value 存儲系統,主要用於分享配置和服務發現.


特點:

簡單:支持 curl 方式的用戶 API (HTTP+JSON)

安全:可選 SSL 客戶端證書認證

快速:單實例可達每秒 1000 次寫操作

可靠:使用 Raft 實現分佈式


etcd結構:

wKioL1efXjKgGloRAABgrJjqG30423.png

一個 etcd 節點的核心由三部分組成:

  • Raft:raft 狀態機是對 raft 共識算法的實現 

  • WAL:raft 日誌存儲 

  • Storage:數據的存儲與索引


安裝和使用:

wget https://github.com/coreos/etcd/releases/download/v0.4.6/etcd-v0.4.6-linux-amd64.tar.gz
cp etcd* /bin/
etcd -version

啓動etcd:
# mkdir /data/etcd   
# /bin/etcd -name etcdserver -peer-addr 192.168.1.21:7001 -addr 192.168.1.21:4001 -data-dir /data/etcd -peer-bind-addr 0.0.0.0:7001 -bind-addr 0.0.0.0:4001 &  
參數“-peer-addr”指定與其它節點通訊的地址;參數“-addr”指定服務監聽地址;參數“-data-dir”爲指定數據存儲目錄

API接口調用:

設置(set)插入數據:
curl -L http://127.0.0.1:4001/v2/keys/apps/abc.com -XPUT -d value="5.5.5.5:8080|6.6.6.6:8080"
curl -L http://127.0.0.1:4001/v2/keys/apps/bcd.com -XPUT -d value="3.3.3.3:8080|4.4.4.4:8080"
curl -L http://127.0.0.1:4001/v2/keys/apps/ef.com -XPUT -d value="1.1.1.1:8080|2.2.2.2:8080"

查詢(get)數據:
curl -L http://127.0.0.1:4001/v2/keys/apps
刪除(del)數據:
curl -L http://127.0.0.14001/v2/keys/lekey -XDELETE

ectdctl命令使用:

列出根目錄下的內容:
etcdctl ls /
etcdctl get /apps/ap.com/
etcdctl mkdir /demo  新建目錄
etcdctl mk demo   新建鍵
etcdctl rm /path  --recursive     遞歸刪除目錄下的所有目錄和鍵

curl -L http://127.0.0.1:7001/v2/admin/config 
curl -L http://127.0.0.1:7001/v2/admin/machines

在Etcd的存儲系統中,所有以下劃線開頭的目錄都被認爲是“隱藏目錄”。這種目錄是不能通過 etcdctl ls 命令或 HTTP GET訪問其上級目錄列出來的。而知道路徑的準確名稱的用戶可以通過的完整路徑以處理普通數據一樣的方式對隱藏目錄下的數據節點進行增刪查改;然後直接使用GET訪問 /App 目錄看到的是一個空目錄,但顯示的獲取 /App/_message數據節點,卻能發現這個鍵是確實存在的。也就是說,隱藏的目錄或鍵不會被列出,只有知道完整路徑的用戶可以直接訪問到.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章