讀《etcd 技術內幕》
etcd 是一個可靠的分散式 KV 儲存,其底層使用 Raft 演算法保證一致性,主要用於共享配置和服務發現。
etcd 程式碼為了效能,使用了大量的 goroutine 和 Channel。
etcd-raft 模組是 etcd 的核心模組之一,是實現 raft 協議的。
etcd-rafthttp 模組
watcher 機制
Lessor
WAL 日誌
SnapShotter 快照
api 介面:
etcd v2 提供了 http + json 的呼叫方式
etcd v3 客戶端中使用 grpc 與服務端進行互動
etcd 叢集可以支援每秒 1萬+ 次的寫入。
etcd 支援 TLS 訪問。
鍵值對儲存支援多版本
etcd v3 底層儲存使用的是 BoltDB , key 的版本資訊是 main revision + sub revision。
查詢時選通過 B 樹索引查詢到對應的版本資訊,然後在 BoltDB 中通過版本資訊查詢相應的 Value 值。
主要模組
raft:raft 協議的核心實現,只實現了基本的 raft 協議,未提供實現網路層相關的內容。
raft-http
wal 和 snap
store
mvcc
lease
auth 和 alarm
etcdserver: etcd 服務端實現
client v2
client v3
執行
單機模式
叢集模式
相關文章
- ShowMeBug 核心技術內幕
- 深入分析 Java Web 技術內幕讀後總結JavaWeb
- 簡述Spring技術內幕Spring
- TiDB 技術內幕 - 說儲存TiDB
- TiDB 技術內幕 - 談排程TiDB
- 《spring技術內幕》讀書筆記3-AOP的實現Spring筆記
- 《深入分析JavaWeb技術內幕》之讀書筆記(篇三)JavaWeb筆記
- 「NGW」前端新技術賽場:Serverless SSR 技術內幕前端Server
- PostgreSQL技術內幕(七)索引掃描SQL索引
- Mybatis技術內幕(1):Mybatis簡介MyBatis
- [Mysql技術內幕]Innodb儲存引擎MySql儲存引擎
- Mysql技術內幕之InnoDB鎖探究MySql
- Mybatis技術內幕(2.3.6):反射模組-WrapperMyBatis反射APP
- MySQL技術內幕之“日誌檔案”MySql
- Mybatis技術內幕(2.3.7):反射模組-TypeParameterResolverMyBatis反射
- Mybatis技術內幕(2.3.3):反射模組-InvokerMyBatis反射
- Mybatis技術內幕(2.3.4):反射模組-ObjectFactoryMyBatis反射Object
- Mybatis技術內幕(2.3.1):反射模組-ReflectorMyBatis反射
- 深入剖析全鏈路灰度技術內幕
- 《ASP.Net Core技術內幕與專案實戰》讀書筆記_1ASP.NET筆記
- 有贊搜尋系統的技術內幕
- PostgreSQL 技術內幕(五)Greenplum-Interconnect模組SQL
- Mybatis技術內幕(2.3.5):反射模組-Property工具類MyBatis反射
- Mybatis技術內幕(2.4):資料來源模組MyBatis
- 杭州銀行批量交易平臺(HZBAT)技術內幕BAT
- Spring技術內幕筆記(2):Spring MVC 與 WebSpring筆記MVCWeb
- 直播|PostgreSQL 技術內幕(五)Greenplum-Interconnect模組SQL
- 更強、更穩、更高效:解讀 etcd 技術升級的三駕馬車
- 《深入分析Java Web技術內幕》讀書筆記 - 第1章 深入Web請求過程JavaWeb筆記
- Spring技術內幕:設計理念和整體架構概述Spring架構
- 技術內幕 | 阿里雲EMR StarRocks 極速資料湖分析阿里
- Hadoop技術內幕:深入解析Hadoop和HDFS 1.3準備 Hadoop 原始碼Hadoop原始碼
- etcd學習(6)-etcd實現raft原始碼解讀Raft原始碼
- 《RocketMQ技術內幕:RocketMQ架構設計與實現原理》—第1章閱讀原始碼前的準備MQ架構原始碼
- 【Mysql技術內幕筆記--1】--Mysql體系結構和儲存引擎MySql筆記儲存引擎
- 內網穿透技術內網穿透
- etcd中watch原始碼解讀原始碼
- 騰訊光子技術美術負責人深度解讀國內TA現狀