etcd is a distributed reliable key-value store for the most critical data of a distributed system。etcd爲分佈式系統提供可靠的鍵值存儲。能夠用在系統的降級處理、服務的發現、配置的共享等多個方面。web
在數據的存儲和分發上,etcd和NoSql數據庫基本沒有差異。可是etcd提供了TTL和訂閱與發佈(Subscript/Public)功能。固然Etcd設計的初衷主要用因而共享配置和服務發現,它的靈感來自於ZooKeeper和Doozer。redis
etcd和redis的區別: Etcd is persisted to disk.數據庫
參考博文:分佈式
http://www.codeweblog.com/%E6%9C%8D%E5%8A%A1%E5%8F%91%E7%8E%B0%E7%B3%BB%E7%BB%9Fetcd%E4%BB%8B%E7%BB%8D/.net
http://www.csdn.net/article/2015-01-22/2823659設計
http://etcd-dev.coreos.narkive.com/FjCZSoPm/redis-vs-etcdcode
分割線---筆記blog
etcd的經典使用場景:ip
分佈式系統中的數據分爲控制數據和應用數據。使用etcd的場景處理的數據默認爲控制數據,對於應用數據,只推薦處理數據量很小,可是更新訪問頻繁的狀況。同步
分佈式數據的存儲一直是解決集羣服務消息同步和協調操做的核心關注點。
分佈式控制部分很大程度上得益於CoreOS提供的可靠且高效的分佈式數據服務Etcd
從實現的角度上看,目前主流的NoSQL數據庫,例如MongoDB、FoundationDB等都可以很方便地實現分佈式存儲。而Etcd本質上與一個NoSQL的數據庫系統也有幾分神似,但更準確的說法說是一個高可用的鍵值存儲系統。與通常的NoSQL數據庫不一樣,Etcd在設計的初衷主要用因而共享配置和服務發現,它的靈感來自於ZooKeeper和Doozer。Etcd對TTL的支持和HTTP Restful API是其比較大的亮點。
若是Etcd的功能僅僅侷限於數據的存儲和分發,它與普通的NoSQL數據庫就沒有特別的差異了。事實上Etcd所作的遠不止這些,做爲一個用於集羣配置共享的服務,除了TTL這種典型特性外,另外一個重要的功能即是數據變動的訂閱/通知(Subscript/Public)。