搜索你想找的开源项目

输入名称、用途或关键词,也可粘贴 GitHub 仓库链接

分享到微信

当前解读页的微信分享二维码

用微信扫一扫打开,点击右上角「···」分享给朋友或朋友圈。

手机上可截屏后,在微信扫一扫中从相册识别二维码。

etcd-io/etcd

数据

面向分布式系统的强一致键值存储,用 Raft 复制关键配置与协调数据。

在 GitHub Trending 日榜上的最好名次:第 14 名。点击获取 README 徽章
52,575
10,590
Go
Apache-2.0
创建于 13 年前

项目介绍

etcd 是一个分布式可靠的键值存储,用来保存分布式系统中最关键的数据。它提供定义清晰的 gRPC API,支持自动 TLS 和可选的客户端证书认证,并用 Raft 共识算法维护一个高可用的复制日志 source:4。它常与 Kubernetes、locksmith、Vulcand、Doorman 等系统配合使用,开发团队也列出了大量公司在生产环境中的使用记录 source:24。

它适合需要保存集群配置、服务发现记录、选主状态和分布式锁的平台与基础设施工程师。官方提供的 etcdctl 命令行客户端可以完成基本读写 source:32,Go 客户端位于 go.etcd.io/etcd/client/v3 source:36。

快速开始

  1. 从发布页面下载适用于 OSX、Linux、Windows 或 Docker 的预编译版本 source:18。README 明确提示 main 分支在开发期间可能不稳定甚至无法运行,因此实际使用应选择稳定版本 source:3。
  2. 在解压目录中启动单节点集群:
/tmp/etcd-download-test/etcd

或者先移动到系统路径再启动:

mv /tmp/etcd-download-test/etcd /usr/local/bin/
etcd

启动后,客户端端口 2379 和对等节点端口 2380 开始监听 source:47。 3. 在另一个终端写入并读取一个键:

etcdctl put mykey "this is awesome"
etcdctl get mykey

如果能读回该值,说明本地节点已经在处理客户端请求 source:47。

如果要运行本地多节点示例,先安装 goreman,然后在仓库根目录执行 goreman start;随附的 Procfile 会拉起 infra1、infra2、infra3 三个成员,以及一个可选的 gRPC 代理 source:54。动画演示和运维指南可以帮助继续往下走 source:51 source:46。

在 Go 中使用

在 Go module 中加入 v3 客户端:

go get go.etcd.io/etcd/client/v3

服务端、客户端、raft 和 etcdctl 各包的 API 文档发布在 godocs 上 source:33。

使用约束

  • 2379 和 2380 分别是已注册的客户端端口和对等节点端口,防火墙和服务发现配置需要同时考虑两者 source:52。
  • main 是开发分支。生产部署请固定使用带版本号的发布包,不要直接从 main 构建 source:3。
  • 集群、TLS、配置格式(命令行参数与环境变量)、调优和语言绑定都有单独文档,从单节点转向多节点前应先阅读对应指南 source:60。
  • 项目使用 Apache 2.0 许可证 source:20。

HotRepo 点评

在 2026-11-06 的 GitHub 全语言日榜上,etcd 位列第 14,当日新增 123 颗 Star,总 Star 数为 52,481,Fork 数为 10,571。这是一个 2013 年创建的老牌基础设施项目,并非新入榜项目,单次记录不足以判断热度趋势;但它在综合日榜上出现,说明成熟分布式系统项目仍能获得关注。对读者而言更值得参考的是项目本身的覆盖范围:基于 Raft 的复制存储、成体系的 API 文档、健壮性测试,以及较长的生产使用名单。

本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。

Hacker News 讨论

Etcd v3.5 Data inconsistency postmortem
▲ 2 · 0 条评论 · 2022年5月6日
Etcd 3.4 Released
▲ 2 · 0 条评论 · 2019年8月30日
Etcd v3.5 data inconsistency postmortem
▲ 1 · 0 条评论 · 2022年4月25日