etcd入门(一)基础架构及写入流程

一、什么是ETCD

1.1、etcd简介

etcd,可以读成etc-d,也就是分布式的配置文件。同理可以知道etcd的作用就是一个分布式的配置文件系统,也就是配置中心。

1.2、etcd应用场景

用来实现分布式系统中的配置管理和服务注册与发现;具体场景有:

  1. 配置管理,比如多个客户端可以从etcd中读取到统一的配置,类似于NoSQL数据库。
  2. 服务注册与发现,比如微服务架构中,服务向etcd注册自己的状态,其他服务就可以通过etcd发现。
  3. 分布式锁,比如多个客户端通过获取etcd实现的分布式锁避免数据竞争和并发问题。
  4. 分布式系统的一致性协调,比如分布式事务管理。

二、etcd基础架构

网上图很多,我选了一个新手比较好理解的(后面自己画一个)。

根据上面的图,可以简单理解etcd的架构如下:

  1. Client层,etcd客户端,支持以api的形式操作etcd系统。

  2. API网络层:声明客户端访问etcd server的通信协议,支持gRPC、HTTP。

  3. 逻辑层

    1. Raft,通过Raft算法实现系统中的多个节点间的Leader选举、日志复制,保证节点间的数据一致性。
    2. 功能逻辑层,实现了etcd系统的很多特性,比如MVCC、KV Server,Auth鉴权、限流等。
  4. 存储层:包含WAL日志模块、快照等模块;其中WAL和MySQL的WAL一样,是用来保证系统Crash时写入的数据不丢失的。

三、etcd执行一个写操作

根据上面的模型来分析etcd的写操作,可以将其分成以下流程:

  1. etcd client选择一种通信方式,如gRPC请求etcd系统,请求到达逻辑层;
  2. etcd系统会在逻辑层进行请求的校验,如系统的配额(Quota)是否达到上限;
  3. 逻辑层校验完成后,通过KV Server向Raft模块发起执行请求,Raft后根据选举算法找到主节点,并在大部分节点同意后,让请求真正开始修改,也就是到达存储层。
  4. etcd 存储层执行请求时,会先先WAL日志,用来保证数据不丢失;之后把请求放到一个先进先出的队列(Apply 模块)中,再依次更新MVCC模块、写boltdb等。

下面是更加清晰的etcd架构图,分析写请求涉及到哪些模块,可以帮助我们更好理解。

四、总结

上面只是分析了etcd的简单架构以及写流程,并没有介绍一些模块的具体作用,如哪些模块保证etcd的数据一致性、MVCC的作用是什么;这些会在后面补充。

相关推荐
白帽小丑19 分钟前
# 一次 MySQL DELETE 误操作的数据恢复尝试实录
数据库·mysql
Quincy_Freak3 小时前
信创内网数据规范实践:银河麒麟下SQLite本地数据安全管理方案
数据库·sqlite·arm·数据库管理·大数据分析·银河麒麟·aarch64
万联WANFLOW4 小时前
SD-WAN 控制平面高可用怎么做?SDWAN 控制器挂了,全网会发生什么
运维·网络·分布式·架构
2601_962683895 小时前
治理遗留系统中的“生肉 SQL”:一次用多模型协作优化慢查询的实战复盘
数据库·人工智能·sql
酱学编程5 小时前
【从零到一实现一个 AI Agent 框架 · 第四篇】04. 任务规划:拆解复杂目标 -
服务器·网络·数据库·人工智能
shushangyun_6 小时前
2026智能采购商城系统选型指南:如何引领企业数字化采购升级
java·大数据·数据库·人工智能·机器学习
华山令狐虫7 小时前
DBAPI AI 写 SQL:支持动态 SQL 与参数占位符,自然语言一键生成
数据库·人工智能·sql·dbapi
IvorySQL8 小时前
PG 技术日报|2026-07-04
数据库·人工智能·postgresql·开源
Hoxy.R8 小时前
KingbaseES读写分离高可用集群扩容、备库重建与故障切换实战
运维·数据库
IvorySQL8 小时前
IvorySQL HTAP 实时湖仓接入引擎
数据库·postgresql·开源·htap·ivorysql