讀《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
執行
單機模式
叢集模式
相關文章
- WebKit技術內幕WebKit
- 深入分析 Java Web 技術內幕讀後總結JavaWeb
- ShowMeBug 核心技術內幕
- 揭祕《Arduino技術內幕》UI
- 簡述Spring技術內幕Spring
- MFC技術內幕簡結 (轉)
- Mysql技術內幕InnoDB儲存引擎讀書筆記--《四》表MySql儲存引擎筆記
- Mysql技術內幕InnoDB儲存引擎讀書筆記--《六》鎖MySql儲存引擎筆記
- 《深入分析JavaWeb技術內幕》之讀書筆記(篇三)JavaWeb筆記
- 「NGW」前端新技術賽場:Serverless SSR 技術內幕前端Server
- Mybatis技術內幕(2.3.3):反射模組-InvokerMyBatis反射
- Mybatis技術內幕(2.3.4):反射模組-ObjectFactoryMyBatis反射Object
- Mybatis技術內幕(2.3.1):反射模組-ReflectorMyBatis反射
- Mybatis技術內幕(1):Mybatis簡介MyBatis
- [Mysql技術內幕]Innodb儲存引擎MySql儲存引擎
- PostgreSQL技術內幕(七)索引掃描SQL索引
- Mysql技術內幕之InnoDB鎖探究MySql
- TiDB 技術內幕 - 說儲存TiDB
- TiDB 技術內幕 - 談排程TiDB
- [React技術內幕] setState的祕密React
- 深入分析java web技術內幕JavaWeb
- MySQL技術內幕:InnoDB儲存引擎MySql儲存引擎
- 《spring技術內幕》讀書筆記3-AOP的實現Spring筆記
- Mysql技術內幕InnoDB儲存引擎讀書筆記--《三》檔案MySql儲存引擎筆記
- Mysql技術內幕InnoDB儲存引擎讀書筆記--《七》事務MySql儲存引擎筆記
- Mybatis技術內幕(2.3.6):反射模組-WrapperMyBatis反射APP
- Mybatis技術內幕(2.3.7):反射模組-TypeParameterResolverMyBatis反射
- MySQL技術內幕之“日誌檔案”MySql
- 深入剖析全鏈路灰度技術內幕
- “聲討”高雲的《jQuery技術內幕》jQuery
- Mysql技術內幕InnoDB儲存引擎讀書筆記--《二》InnoDB儲存引擎MySql儲存引擎筆記
- 《ASP.Net Core技術內幕與專案實戰》讀書筆記_1ASP.NET筆記
- Mybatis技術內幕(2.4):資料來源模組MyBatis
- Mybatis技術內幕(2.3.5):反射模組-Property工具類MyBatis反射
- 有贊搜尋系統的技術內幕
- PostgreSQL 技術內幕(五)Greenplum-Interconnect模組SQL
- [React技術內幕] key帶來了什麼React
- 《MySQL技術內幕:InnoDB儲存引擎》連載MySql儲存引擎