1. 基本概念
这份文档定义 etcd 文档、命令行和源代码中使用的多个术语。
术语 | 描述 |
---|---|
Node(节点) | Node(节点) 是 raft 状态机的一个实例。它有唯一标识,如果它是leader,会内部记录其他节点的信息。 |
Member(成员) | Member(成员是) etcd 的一个实例。它承载一个 node/节点,并为 client (客户端)提供服务。 |
Cluster(集群) | Cluster(集群)由多个 member(成员)组成。每个成员的节点遵循 raft 一致性协议来复制日志。集群从成员中接收提案,提交他们并应用到本地存储。 |
Peer(同伴) | Peer(同伴)是同一个集群中的其他成员。 |
Proposal(提议) | 提议是一个需要完成 raft 协议的请求(例如写请求,配置修改请求)。 |
Client(客户端) | Client(客户端)是集群 HTTP API 的调用者。对于 V3 版本,应该包括 gRPC API。 |
Machine(机器) | 该术语已弃用。在 2.0 版本之前,在 etcd 中的成员备选。 |
etcd HTTP Server | 用于处理用户发送的 API 请求以及其它 etcd 节点的同步与心跳信息请求。 |
etcd Store | 用于处理 etcd 支持的各类功能的事务,包括数据索引、节点状态变更、监控与反馈、事件处理与执行等等,是 etcd 对用户提供的大多数 API 功能的具体实现。 |
Raft | Raft 强一致性算法的具体实现,是 etcd 的核心。 |
WAL | Write Ahead Log(预写式日志),是 etcd 的数据存储方式。除了在内存中存有所有数据的状态以及节点的索引以外,etcd 就通过 WAL 进行持久化存储。WAL 中, 所有的数据提交前都会事先记录日志。Snapshot 是为了防止数据过多而进行的状态快照;Entry 表示存储的具体日志内容。 |