etcd教程(一)
etcd 是 CoreOS 團隊於 2013 年 6 月發起的開源項目,它的目標是構建一個高可用的分布式鍵值(key-value)數據庫,基於 Go 語言實現。我們知道,在分布式系統中,各種服務的配置信息的管理分享,服務的發現是一個很基本同時也是很重要的問題。CoreOS 項目就希望基於 etcd 來解決這一問題。
etcd 目前在 github.com/coreos/etcd 進行維護。
受到 Apache ZooKeeper 項目和 doozer 項目的啟發,etcd 在設計的時候重點考慮了下面四個要素:
簡單:支持 REST 風格的 HTTP+JSON API
安全:支持 HTTPS 方式的訪問
可靠:支持分布式結構,基於 Raft 的一致性算法
一般情況下,用戶使用 etcd 可以在多個節點上啟動多個實例,並添加它們為一個集群。同一個集群中的 etcd 實例將會保持彼此信息的一致性。
2、安裝
etcd 基於 Go 語言實現,因此,用戶可以從 項目主頁 下載源代碼自行編譯,也可以下載編譯好的二進制文件,甚至直接使用制作好的 Docker 鏡像文件來體驗。
2.1 二進制文件方式下載
編譯好的二進制文件都在 github.com/coreos/etcd/releases 頁面,用戶可以選擇需要的版本,或通過下載工具下載。
例如,下面的命令使用 curl 工具下載壓縮包,並解壓。
解壓後,可以看到文件包括
其中 etcd 是服務主文件,etcdctl 是提供給用戶的命令客戶端。
推薦通過下面的命令將三個文件都放到系統可執行目錄 /usr/local/bin/ 或 /usr/bin/。
運行 etcd,將默認組建一個兩個節點的集群。數據庫服務端默認監聽在 2379 和 4001 端口,etcd 實例監聽在 2380 和 7001 端口。顯示類似如下的信息:
此時,可以使用 etcdctl 命令進行測試,設置和獲取鍵值 testkey: "hello world",檢查 etcd 服務是否啟動成功:
說明 etcd 服務已經成功啟動了。
2.2 Docker 鏡像方式下載
鏡像名稱為 quay.io/coreos/etcd:v2.0.0_rc.1,可以通過下面的命令啟動 etcd 服務監聽到 4001 端口。
etcd教程(一)