etcd 高可用的 Key/Value 存储系统

etcd是一个高可用的键值存储系统,主要用于共享配置和服务发现。etcd是由CoreOS开发并维护的,灵感来自于 ZooKeeper 和 Doozer,它使用Go语言编写,并通过Raft一致性算法处 理日志复制以保证强一致性。Raft是一个来自Stanford的新的一致性算法,适用于分布式系统的日志复制,Raft通过选举的方式来实现一致性,在 Raft中,任何一个节点都可能成为Leader。Google的容器集群管理系统Kubernetes、开源PaaS平台Cloud Foundry和CoreOS的fleet都广泛使用了etcd。

在分布式系统中,如何管理节点间的状态一直是一个难题,etcd 像是专门为集群环境的服务发现和注册而设计,它提供了数据TTL失效、数据改变监视、多 值、目录监听、分布式锁原子操作等功能,可以方便的跟踪并管理集群节点的状态。etcd目前的版本是0.4.5,虽然未发布1.0版本(今年会发布),但 其已经使用在多个生产系统中,可见其火热程度。etcd的特性如下:

  • 简单: curl可访问的用户的API(HTTP+JSON

  • 安全: 可选的SSL客户端证书认证

  • 快速: 单实例每秒 1000 次写操作

  • 可靠: 使用Raft保证一致性

etcd是CoreOS的核心组件,负责节点间的服务发现和配置共享,运行在CoreOS中的应用可以通过etcd读取或者写入数据。虽然etcd是为CoreOS而设计,但其可以运行在多个平台上,包括 OS XLinux、BSD。

Jason Wilder的一篇博客对常见的服务发现开源项目Zookeeper、Doozer、etcd进行了介绍:

Zookeeper是一个用户维护配置信息、命名、分布式同步以及分组服务的集中式服务框架,它使用Java语言编写,通过Zab协议来保证节点的一致性。因为Zookeeper是一个CP型系统,所以当网络分区问题发生时,系统就不能注册或查找服务。

Doozer是一个一致性的、分布式存储系统,使用Go语言编写,通过Paxos来保证强一致性,Doozer项目目前已经停止更新并有将近160个分支。和Zookeeper一样,Doozer也是一个CP型系统,在网络分区问题发生时,会有同样的问题。

etcd是一个用于共享配置和服务发现的高可用的键值存储系统,使用Go语言编写,通过Raft来保证一致性,有基于HTTP+JSON的API接口。etcd也是一个强一致性系统,但是etcd似乎支持从non-leaders中读取数据以提高可用性;另外,写操作仍然需要leader的支持,所以在网络分区时,写操作仍可能失败。

目前有很多支持etcd的库和工具,比如命令行客户端工具etcdctl、Go客户端go-etcd、Java客户端jetcd。关于etcd的使用和安装读者可以参考官方文档

etcd 3.0.14 发布,高可用 Key/Value 存储系统
etcd 3.0.14 发布了,etcd 是一个高可用的 Key/Value 存储系统,主要用于分享配置和服务发现,灵感来自于 ZooKeeper 和 Doozer。这主要是一个 bug 修复版本,兼容所有以前的 v3.0.0 + 版本。更新内容:Bug 修复GH6793: 添加 no-ttl 标识到 etcdctl migrate 以丢弃 keys on transformGH6794: ctlv3: 修复迁移下载地址:Sourc

发布于 2016-11-13 00:25:25 | 154 次阅读

etcd 3.0 发布,高可用 Key/Value 存储系统
etcd 3.0标志着etcd 3.0的第一个稳定版本的API和数据模型发布,升级很简单,因为同样的etcd2 JSON的端点和内部的集群协议在etcd3仍然提供。尽管如此,但etcd3是基于etcd2用户和实践经验的反馈对API进行大规模的重新设计的。值得关注的更新内容有效率,可靠性和并发控制等一些显著的改进。更新日志:Improved latency and th

发布于 2016-07-01 00:32:24 | 245 次阅读

etcd v2.3.2 发布,高可用 Key/Value 存储系统
etcd v2.3.2 发布了,etcd 是一个高可用的 Key/Value 存储系统,主要用于分享配置和服务发现。etcd 的灵感来自于 ZooKeeper 和 Doozer,侧重于:简单:支持 curl 方式的用户 API (HTTP+JSON)安全:可选 SSL 客户端证书认证快速:单实例可达每秒 1000 次写操作可靠:使用 Raft 实现分布式该版本改进记录如下:GH5028: etcdma

发布于 2016-04-24 01:01:25 | 113 次阅读

CoreOS 发布 etcd v2.3.0,重点提升稳定性和可靠性
Etcd v2.3.0正式发布了!这次更新不仅伴随着稳定性和可靠性方面的提升,还为我们带来了新的v3版本API的预览版以及新的存储引擎,除此之外还有哪些诱人的特性呢?赶紧来看看吧!今天,我们很高兴地宣布etcd v2.3.0正式发布了,这次更新的重点放在稳定性和可靠性方面的改进。这个版本里同样也推出了一个实验性的下一代v3版本A

发布于 2016-03-28 01:25:21 | 148 次阅读

etcd 2.2 发布,高可用 Key/Value 存储系统
etcd 2.2 发布,此版本主要是改进工具链和开发者体验。此版本引入下一代 v3 API 的实验性 demo;新增一个 Go etcd 客户端;添加 active 集群连接检测功能。此外还改进了文档,详细改进内容请看发行说明。etcd 是一个高可用的 Key/Value 存储系统,主要用于分享配置和服务发现。etcd 的灵感来自于 ZooKeeper 和 Doozer,侧重

发布于 2015-09-12 00:31:27 | 138 次阅读

etcd 2.1 发布,高可用 Key/Value 存储系统
etcd 2.1 发布,此版本包括一个新的 authentication/authorization API;各种健壮性改进;日志记录改进和新的 metrics API。 详细改进内容请看发行说明。     etcd 是一个高可用的 Key/Value 存储系统,主要用于分享配置和服务

发布于 2015-07-26 00:29:21 | 210 次阅读

etcd 2.0 发布,官方首个主要稳定版
etcd 2.0 发布了,这是官方首个主要的稳定版本,与上一个 0.4.6 版本比较,该版本值得关注的改进有:内部协议的改进以避免意外的错误配置etcdctl backup 命令用于轻松的从集群失败中恢复etcdctl member list/add/remove 命令用于轻松管理

发布于 2015-01-29 01:47:56 | 232 次阅读


Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务