首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Etcd-基本介绍和入门

Etcd-基本介绍和入门

作者头像
运维小路
发布2026-02-28 18:15:05
发布2026-02-28 18:15:05
500
举报
文章被收录于专栏:运维小路运维小路

作者介绍:简历上没有一个精通的运维工程师,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

数据库是一个系统(应用)最重要的资产之一,所以我们的数据库将从以下几个数据库来进行介绍。

MySQL

PostgreSQL

MongoDB

Redis

Etcd(本章节)

我们在讲解Kubernetes(k8s)的时候虽然有提到过,但是并没有详细介绍,我们把他单独列出来讲解的一个原因也是他在Kubernetes里面使用,一般业务到目前为止,我也只见过一个应用使用这个数据库。

一、Etcd概述与核心特性

1.1 什么是Etcd?

Etcd(读作“et-cee-dee”,来源于“/etc”目录和“d”istributed system的组合)是一个分布式、可靠的键值存储系统,专门用于存储分布式系统中的关键数据。它由CoreOS团队于2013年创建,使用Go语言编写,采用Raft一致性算法来保证数据的强一致性。

1.2 核心设计理念
  • 简单性:提供定义良好、面向用户的API(gRPC和HTTP/JSON)
  • 可靠性:通过Raft共识算法确保数据一致性和高可用性
  • 安全性:支持TLS客户端认证和自动密钥轮换
  • 高性能:每秒可处理数千个写操作和上万个读操作
1.3 关键特性详解

强一致性:所有数据访问都通过Raft协议提供严格的可序列化一致性,确保所有节点看到相同的数据顺序。

高可用性:采用多副本机制,允许部分节点故障而不影响服务。通常部署奇数个节点(3、5或7),以容忍(n-1)/2个节点故障。

持久化:数据不仅存储在内存中,还持久化到磁盘,确保重启后数据不丢失。

Watch机制:客户端可以监听键的变化,实时获取更新通知,这是许多协调场景的基础。

租约(Lease)机制:支持键与租约绑定,租约过期后相关键自动删除,非常适合实现服务健康检查和分布式锁。

二、Etcd架构深入解析

2.1 物理架构

典型的Etcd集群由3到7个节点组成,每个节点包含以下核心组件:

代码语言:javascript
复制
+-------------------------------------------------------------+
|                           Etcd节点                           |
|  +---------------------+      +--------------------------+  |
|  |     Raft共识模块     |<---->|       存储引擎           |  |
|  |  • Leader选举        |      |   • 键值存储(B-tree)      |  |
|  |  • 日志复制          |      |   • 持久化(WAL+快照)      |  |
|  |  • 安全性保证        |      +--------------------------+  |
|  +---------------------+               |                     |
|           |                            |                     |
|  +---------------------+      +--------------------------+   |
|  |    客户端API层       |<---->|      MVCC多版本控制      |   |
|  |  • gRPC网关          |      |   • 版本管理             |   |
|  |  • HTTP/JSON代理     |      |   • 并发控制             |   |
|  +---------------------+      +--------------------------+   |
+-------------------------------------------------------------+
2.2 Raft共识算法实现

Etcd对Raft算法的实现进行了多项优化:

日志压缩:定期创建快照,减少日志大小和恢复时间。

领导者租约:领导者定期发送心跳,维持领导地位,减少不必要的选举。

批处理与管道化:将多个请求打包处理,提高吞吐量。

2.3 存储引擎

Etcd v3版本使用BoltDB作为后端存储(在v3.5+中改为Bbolt),提供:

  • 基于B+树的高效索引
  • 支持范围查询和前缀查询
  • 完全序列化的事务支持
2.4 多版本并发控制(MVCC)

每个键的修改都会创建新版本,旧版本保留直到压缩。这提供了:

  • 快照隔离级别的事务
  • 可重复读的一致性视图
  • 历史查询能力
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-02-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维小路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • MongoDB
    • 一、Etcd概述与核心特性
      • 1.1 什么是Etcd?
      • 1.2 核心设计理念
      • 1.3 关键特性详解
    • 二、Etcd架构深入解析
      • 2.1 物理架构
      • 2.2 Raft共识算法实现
      • 2.3 存储引擎
      • 2.4 多版本并发控制(MVCC)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档