系列文章:


总目录索引:九析带你轻松完爆 etcd 系列教程

目录

1 前言

2 邀约

3 etcd 架构详解


1 前言

        如果你对博客有任何疑问,请告诉我。第二章 九析带你轻松完爆 etcd - 架构篇_第1张图片


2 邀约

        你可以从下面截图中获取免费的、更生动的视频资料:第二章 九析带你轻松完爆 etcd - 架构篇_第2张图片


3 etcd 架构详解

        下图展示了 etcd 物理架构:

        从 etcd 架构图可以看到,etcd 主要分为四个部分:

1 httpserver:用于接收用户发送的 API 请求以及其他 etcd 节点的同步和心跳信息请求

2 store:用于处理 etcd 支持的各类功能的事务,包括数据索引、节点状态变更、监控和反馈、事件处理与执行等等,是 etcd 对用户提供的大多数 API 功能的具体实现

3 raft:Raft 强一致性算法的具体实现,是 etcd 的核心

4 WAL:Write Ahead Log(预写式日志),是 etcd 数据存储方式。除了在内存中存有所有数据的状态以及节点索引以外,etcd 就是通过 WAL 进行持久化存储。WAL 中,所有的数据提交前都会事先记录日志。Snapshot 是为了防止数据过多而进行的状态快照;Entry 表示存储的具体日志内容

简单来说就是客户端通过 API 发送操作 etcd 的请求,etcd http server 组件接收到请求之后将其转给 store 组件处理,store 将处理后的结果通知给 raft 组件,raft 在将数据持久化之前首先通知 WAL 组件进行日志记录,最后再将数据操作结果持久化。