etcd is a distributed reliable key-value store for the most critical data of a distributed system。etcd为分布式系统提供可靠的键值存储。可以用在系统的降级处理、服务的发现、配置的共享等多个方面。
在数据的存储和分发上,etcd和NoSql数据库基本没有差别。但是etcd提供了TTL和订阅与发布(Subscript/Public)功能。当然Etcd设计的初衷主要用于是共享配置和服务发现,它的灵感来自于ZooKeeper和Doozer。
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/
http://www.csdn.net/article/2015-01-22/2823659
http://etcd-dev.coreos.narkive.com/FjCZSoPm/redis-vs-etcd
分割线---笔记
etcd的经典使用场景:
分布式系统中的数据分为控制数据和应用数据。使用etcd的场景处理的数据默认为控制数据,对于应用数据,只推荐处理数据量很小,但是更新访问频繁的情况。
分布式数据的存储一直是解决集群服务消息同步和协调操作的核心关注点。
分布式控制部分很大程度上得益于CoreOS提供的可靠且高效的分布式数据服务Etcd
从实现的角度上看,目前主流的NoSQL数据库,例如MongoDB、FoundationDB等都能够很方便地实现分布式存储。而Etcd本质上与一个NoSQL的数据库系统也有几分神似,但更准确的说法说是一个高可用的键值存储系统。与一般的NoSQL数据库不同,Etcd在设计的初衷主要用于是共享配置和服务发现,它的灵感来自于ZooKeeper和Doozer。Etcd对TTL的支持和HTTP Restful API是其比较大的亮点。
如果Etcd的功能仅仅局限于数据的存储和分发,它与普通的NoSQL数据库就没有特别的差别了。事实上Etcd所做的远不止这些,作为一个用于集群配置共享的服务,除了TTL这种典型特性外,另一个重要的功能便是数据变更的订阅/通知(Subscript/Public)。