etcd的架构主要分为4个部分
❏ HTTP Server:用于处理用户发送的API请求以及其他etcd节点的同步与心跳信息请求。❏ Store:用于处理etcd支持的各类功能的事务,包括数据索引、节点状态变更、监控与反馈、事件处理与执行等。它是etcd对用户提供的大多数API功能的具体实现。
❏ Raft:Raft强一致性算法的具体实现,是etcd的核心。
❏ WAL:即Write Ahead Log(预写式日志),它是etcd的数据存储方式。除了在内存中存有所有数据的状态以及节点的索引以外,etcd还通过WAL进行持久化存储。WAL中,所有的数据在提交前都会事先记录日志。Snapshot是为了防止数据过多而进行的状态快照;Entry则表示存储的具体日志内容。