簡介
etcd是乙個高可用的鍵值儲存系統,主要用於共享配置和服務發現。etcd是由coreos開發並維護的,靈感來自於 zookeeper 和 doozer,
它使用go語言編寫,並通過raft一致性演算法處理日誌複製以保證強一致性。raft是乙個來自stanford的新的一致性演算法,適用於分布式系統的
日誌複製,raft通過選舉的方式來實現一致性,在raft中,任何乙個節點都可能成為leader。
google的容器集群管理系統kubernetes、開源paas平台cloud foundry和coreos的fleet都廣泛使用了etcd。
概念
raft:etcd 所採用的保證分布式系統強一致性的演算法。
node:乙個 raft 狀態機例項。
member: 乙個 etcd 例項。它管理著乙個 node,並且可以為客戶端請求提供服務。
cluster:由多個 member 構成可以協同工作的 etcd 集群。
peer:對同乙個 etcd 集群中另外乙個 member 的稱呼。
client: 向 etcd 集**送 http 請求的客戶端。
wal:預寫式日誌,etcd 用於持久化儲存的日誌格式。
snapshot:etcd 防止 wal 檔案過多而設定的快照,儲存 etcd 資料狀態。
proxy:etcd 的一種模式,為 etcd 集群提供反向**服務。
leader:raft 演算法中通過競選而產生的處理所有資料提交的節點。
follower:競選失敗的節點作為 raft 中的從屬節點,為演算法提供強一致性保證。
candidate:當 follower 超過一定時間接收不到 leader 的心跳時轉變為 candidate 開始競選。
index:資料項編號。raft 中通過 term 和 index 來定位資料。
api
put:
get:
del:
etcd:用於服務發現的鍵值儲存系統
etcd v3命令和api
etcd rest api基本操作
etcd4j
etcd學習(一)安裝和.net客戶端測試
etcd學習(二)集群搭建clustering
windows系統下etcd的安裝與使用
windows下安裝etcd集群及etcd-viewer
mac安裝etcd,配置etcd視覺化頁面etcd browser
etcd3集群部署
Etcd 集群穩定性測試記錄
2017年 5月 2日 集群節點個數 3個 集群節點環境 1.每秒新增資料,每3秒檢測一次集群狀態。2.每秒新增資料,每5秒禁用一次網絡卡,等待時間15秒。重新啟動網絡卡。3.每秒新增資料,每5秒禁用一次網絡卡,等待時間15秒。重新啟動網絡卡。測試結果如下 乙個小時後的測試資料 節點1,2,3均正常...
閒談etcd(三)etcd的使用
type client structimport fmt go.etcd.io etcd clientv3 time 連線 func main dialtimeout 5 time.second,建立連線 if client,err clientv3.new config err nil fmt.p...
ETCD 原始碼學習 lease 二
在 etcd 原始碼學習過程,不會講解太多的原始碼知識,只講解相關的實現機制,需要關注原始碼細節的朋友可以自行根據文章中的提示,找到相關原始碼進行學習。本文主要介紹 lessor 如果發現過期鍵,server 如何處理過期鍵的過程。lessor goroutine func le lessor ru...