分布式,可靠的键值存储,可用于分布式系统中存储关键核心数据


产品特点


接口简单

使用标准的HTTP工具(例如curl)读取和写入值

键值存储

将数据存储在分层组织的目录中,例如在标准文件系统中

监听变化

监视特定的键或目录以进行更改,并对值的更改做出反应

/configapp2app1



可选的SSL客户端证书认证



基准为每个实例1000次写入/秒



可选的TTL用于密钥过期



通过Raft协议正确分发


etcd是什么?


项目


etcd 是一个高度一致的分布式键值存储,它提供了一种可靠的方式来存储需要由分布式系统或机器集群访问的数据。它可以优雅地处理网络分区期间的领导者选举,即使在领导者节点中也可以容忍机器故障。

从简单应用程序到Kubernetes到任何复杂性的应用程序都可以从etcd中读写数据。

您的应用程序可以读取和写入etcd中的数据。一个简单的用例是将数据库连接详细信息或功能标志存储在etcd中作为键值对。可以观察这些值,使您的应用在更改时可以重新配置自己。高级用途利用etcd的一致性保证来实施数据库领导者选举或跨一组工作人员执行分布式锁定。

etcd是开源的,可在on GitHub上获得,并得到 Cloud Native Computing Foundation的支持。

技术概述


etcd 是用Go语言编写的,它具有出色的跨平台支持,小的二进制文件和强大的社区。etcd机器之间的通信通过Raft共识算法处理。

etcd领导者的延迟是要跟踪的最重要的指标,并且内置仪表板具有专用于此的视图。在我们的测试中,严重的延迟会在群集内引入不稳定因素,因为Raft的速度仅与大多数机器中最慢的机器一样快。您可以通过适当地调整群集来缓解此问题。etcd已在具有高度可变网络的云提供商上进行了预调。

使用案例


etcd是服务发现的后端,并存储集群状态和配置
etcd充当Rook的编排引擎
CoreDNS使用etcd作为可选后端
由Uber创建的Prometheus大型指标平台M3使用etcd进行规则存储和其他功能
OpenStack支持etcd作为可选的配置存储,分布式键锁定,等等

  • Patroni

    带有ZooKeeper,etcd或Consul的PostgreSQL HA的模板

  • Trillian

    由Google创建的透明,高度可扩展且可加密验证的数据存储


此外, GitHub上的数千个项目都与etcd有关联, 包括基于etcd构建的项目,客户端绑定,等等。

etcd属于Cloud Native Computing Foundation孵化项目