Etcd架构

etcd 集群通过Raft算法实现了 “动态主从 + 分布式共识” 的架构,确保数据强一致性和高可用性。etcd 集群在同一时刻只能有一个主节点(Leader),且写操作必须由该主节点处理,但读操作可以从任意节点执行。etcd集群中的节点在正常运行时通过Raft算法动态选举 “领导者(Leader)”,其他节点为 “跟随者(Follower)

1. 节点角色与职责

1.1. Leader 节点

  • 唯一负责处理客户端写请求,并将写操作日志同步到Follower节点。
  • 维护集群状态,协调日志复制和节点选举。

1.2. Follower 节点

  • 接收并持久化 Leader 同步的日志,响应客户端读请求(或转发给 Leader)。
  • 在 Leader 故障时参与选举,竞争成为新 Leader。

1.3. Candidate 节点

选举过程中处于候选状态,向其他节点发送投票请求。

2. 数据一致性与高可用性实现

  1. 客户端向任意节点发送写请求,节点若为Follower则转发至Leader。
  2. Leader 将写日志持久化后,向至少半数以上节点(如3节点集群需2个节点)发送日志复制请求。
  3. 当收到半数以上节点的确认后,Leader 提交日志并返回客户端成功。