Repolode
etcd-io

etcd-io/etcd

面向分布式系统关键数据的可靠分布式键值存储,基于 Raft 共识算法与 gRPC 接口。

Star
52,401
Fork
10,541
未关闭 Issue
391
最近提交
6小时前

这是什么?

etcd 是用 Go 编写的分布式键值存储,使用 Raft 共识算法在集群成员之间复制数据,因此单个成员故障时集群仍能保持可用和一致。客户端通过 gRPC 接口访问,项目还提供命令行客户端 etcdctl 用于读写键值。

它主要用于保存配置、服务元数据等关键协调数据,而非大规模数据存储。系统支持自动 TLS,并可选启用客户端证书认证。默认情况下,集群成员之间通信使用 2380 端口,客户端连接使用 2379 端口。

etcd 常作为 Kubernetes 的后端存储使用。仓库提供了基于 Procfile 和 goreman 的本地多节点集群示例,并包含 v3 API 的 Go 客户端库。

核心功能

  • 01基于 Raft 的数据复制,成员故障时仍保持集群一致与可用。
  • 02定义清晰的 gRPC 接口,支持读取、写入和监听键。
  • 03自动 TLS,可选客户端证书认证。
  • 04提供 etcdctl 命令行客户端管理集群。
  • 05提供 v3 API 的 Go 客户端库。
  • 06支持通过 Procfile 和 goreman 启动本地多节点集群。

适用场景

  • 为 Kubernetes 控制平面存储集群状态与配置。
  • 在分布式应用之间实现服务发现与协调。
  • 在多台服务器之间保持小型关键元数据的一致性。
  • 在本地学习或测试基于 Raft 的分布式系统。

快速上手

  1. 1

    从发布页面下载预编译的二进制文件

  2. 2

    启动单节点 etcd 服务器

    /tmp/etcd-download-test/etcd
  3. 3

    使用 etcdctl 设置一个键

    etcdctl put mykey "this is awesome"
  4. 4

    使用 etcdctl 读取该键

    etcdctl get mykey

使用前须知

  • 运行多节点本地集群需要安装 goreman 并使用仓库中的 Procfile。
  • main 分支在开发期间可能不稳定甚至损坏,生产环境请使用带标签的正式版本。

标签

常见问题

etcd 是什么?
面向分布式系统关键数据的可靠分布式键值存储,基于 Raft 共识算法与 gRPC 接口。 etcd 是用 Go 编写的分布式键值存储,使用 Raft 共识算法在集群成员之间复制数据,因此单个成员故障时集群仍能保持可用和一致。客户端通过 gRPC 接口访问,项目还提供命令行客户端 etcdctl 用于读写键值。
etcd 可以免费使用吗?用的什么许可证?
etcd 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
etcd 还在维护吗?
活跃维护中。etcd 最近一次提交是在 2026年10月19日。
etcd 适合用来做什么?
为 Kubernetes 控制平面存储集群状态与配置。 在分布式应用之间实现服务发现与协调。 在多台服务器之间保持小型关键元数据的一致性。 在本地学习或测试基于 Raft 的分布式系统。
etcd 怎么安装和运行?
从发布页面下载预编译的二进制文件 启动单节点 etcd 服务器: /tmp/etcd-download-test/etcd 使用 etcdctl 设置一个键: etcdctl put mykey "this is awesome" 使用 etcdctl 读取该键: etcdctl get mykey
在哪里获取 etcd?
源代码和安装说明在 GitHub 上:https://github.com/etcd-io/etcd

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目