1 月 28 日,CoreOS 官方宣布发布 etcd 2.0,这是官方发布的首个稳定版本。 etcd 是一个开源的用于配置共享和服务发现的高性能的键值存储系统,由 CoreOS 团队开发,也是 CoreOS 的核心组件,负责 CoreOS 的自动安全更新、容器相关的覆盖网络设置等功能。目前 etcd 在 GitHub 上的 Star 数量已经超过 5000,使用 etcd 的项目也已经超过 500 个,包括 Kubernetes、Cloud Foundry 等大型项目。
据官方博客介绍,etcd 团队最近一直致力于改善 etcd 的稳定性,与最近的 0.4.6 版本(etcd 在 0.x 版本后直接跳到了 2.x 版本)相比,2.0 版本的亮点如下:
- 改进了内部 etcd 协议以防止意外配置错误(比如之前使用 etcdname 作为标志符,而现在使用 Token)
- 增加
etcdctl backup
命令以恢复集群故障 - 增加
etcdctl member list/add/remove
命令以管理集群 - 通过使用循环冗余校验和 append-only 来改进磁盘数据存储的安全性
- 可以更严格且更快的对 Raft 算法实现部分代码进行测试
- 完善了项目文档
- IANA 为 etcd 预留了 2379/2380 端口
业内很多人都会拿 etcd 与 ZooKeeper 做对比,它们确实有些类似。不过相比来说,etcd 是一个非常年轻的项目,它使用 Go 语言编写、部署简单,并使用 Raft 算法保证强一致性(ZooKeeper 使用 Paxos 算法)。2.0 正式版距离上一个 RC 版本发布仅有一个月的时间,这一个月里,官方团队覆盖了所有的测试并完善了系统文档,目前主要功能都已经稳定,并且在很多大型项目都得到了检验,有相关需求的读者可以一试。另外,InfoQ 上也有 etcd 相关的实战文章,读者可以参考阅读。
评论