一.引言:
etcd 是一个高可用、强一致性的分布式键值存储系统,由 CoreOS 开发,基于 Raft 协议实现,主要用于存储分布式系统中的关键配置和元数据。它具有数据持久化、高吞吐、低延迟等特性,是 Kubernetes 集群的核心组件(用于存储集群状态),也被广泛用于服务发现、分布式锁等场景。
二. 基础概念:
1. etcd 架构:

从etcd的架构图中我们可以看到,etcd主要分为四个部分。
- HTTP Server: 用于处理用户发送的API请求以及其它etcd节点的同步与心跳信息请求。
- Store:用于处理etcd支持的各类功能的事务,包括数据索引、节点状态变更、监控与反馈、事件处理与执行等等,是etcd对用户提供的大多数API功能的具体实现。
- Raft:Raft强一致性算法的具体实现,是etcd的核心。
- WAL:Write Ahead Log(预写式日志),是etcd的数据存储方式。除了在内存中存有所有数据的状态以及节点的索引以外,etcd就通过WAL进行持久化存储。WAL中,所有的数据提交前都会事先记录日志。Snapshot是为了防止数据过多而进行的状态快照;Entry表示存储的具体日志内容。
通常,一个用户的请求发送过来,会经由HTTP Server转发给Store进行具体的事务处理
如果涉及到节点的修改,则交给Raft模块进行状态的变更、日志的记录,然后再同步给别的etcd节点以确认数据提交
&nbs

最低0.47元/天 解锁文章
2499

被折叠的 条评论
为什么被折叠?



