etcd技術內幕

百裡燊

  • 出版商: 電子工業出版社
  • 出版日期: 2018-07-01
  • 定價: $534
  • 售價: $534
  • 貴賓價: 9.5$507
  • 語言: 簡體中文
  • 頁數: 412
  • 裝訂: 其他
  • ISBN: 712134386X
  • ISBN-13: 9787121343865

下單後立即進貨 (4週~6週)

商品描述

etcd是一個可靠的的分佈式KV存儲,由CoreOS公司開發,其底層使用Raft算法保證一致性,主要用於共享配置和服務發現。本書主要從源碼角度深入剖析etcd,首先介紹etcd的背景知識,並介紹如何搭建起源碼環境以及相關的命令。然後從基本的Raft協議開始介紹,幫助讀者瞭解Raft協議的背景。接著分析etcd-raft模塊對Raft協議的實現,etcd-raft模塊是etcd的核心模塊之一,該模塊也被很多其他的項目中直接作為Raft協議的底層實現。然後介紹Http編程基礎以及etcd-rafthttp模塊的工作原理和具體實現,介紹etcd中如何處理WAL日誌文件以及快照數據文件,詳細分析了etcd的底層存儲。最後重點介紹etcd服務端和etcd客戶端的相關內容。

作者簡介


2015至今,負責XS雲平台的基礎架構設計及研發工作,XS雲平台以Kafka為消息總線,收集用戶產生操作日誌,為後台多個數據分析平台提供數據源。

目錄大綱

第1章etcd入門
1.1 etcd簡介
1.2數據模型
1.3環境搭建
1.3.1環境變量
1.3.2代碼結構
1.3.3運行
本章小結

第2章Raft協議
2.1 Leader選舉
2.2日誌複製
2.3網絡分區的場景
2.4日誌壓縮與快照
2.5其他技術點
2.5.1 linearizable語義
2.5.2只讀請求
2.5.3 PreVote狀態
2.5.4 Leader節點轉移
本章小結

第3章etcd-raft模塊詳解
3.1 raft結構體
3.1.1 Config結構體
3.1. 2 Storage接口及其實現
3.1.3 unstable結構體
3.1.4 raftLog結構體
3.1.5 raft實現
3.2 Node接口
3.2.1 node結構體
3.2.2初始化
3.2.3 run()方法
3.2.4 Node接口實現
3.3 raftexample示例分析
3.3.1 raftNode
3.3.2 HTTP服務端
3.3.3 kvstore 
本章小結

第4章網絡層
4.1 Go語言網絡編程基礎
4.1.1 http.Server 
4.1.2 RoundTripper 
4.2 etcd-rafthttp模塊詳解
4.2.1 rafthttp.Transporter接口
4.2.2 Peer接口
4.2.3 pipeline 
4.2.4 streamWriter實例
4.2.5 streamReader實例
4.2.6 snapshotSender 
4.3 Handler實例
4.3.1 pipelineHandler 
4.3.2 streamHandler 
4.3.3 snapshotHandler 
本章小結

第5章WAL日誌與快照
5.1 WAL日誌
5.1.1初始化
5.1.2打開日誌
5.1.3讀取日誌
5.1.4追加日誌
5.1.5文件切換
5.2 SnapShotter 
本章小結

第6章storage 
6.1 etcd v2版本存儲
6.1.1 node 
6.1.2 Event
6.1.3 watcher和watcherHub 
6.1.4 store 
6.2 etcd v3版本存儲
6.2.1 backend 
6.2.2 watcher機制
6.2.3 Lessor 
本章小結

第7章etcd-server詳解
7.1 raftNode結構體
7.2 RaftCluster 
7.3 EtcdServer 
7.3.1初始化
7.3 .2註冊Handler 
7.3.3啟動
7.4 ApplierV2和applierV3 
7.4.1 ApplierV2 
7.4.2 applierV3 
7.5 AlarmStore 
本章小結

第8章etcd客戶端詳解
8.1 GRPC基礎
8.1.1定義proto文件
8.1.2服務端
8.1.3創建客戶端
8.2 Client v3 
8.2.1 kvServer 
8.2.2 EtcdServer 
8.2.3 Client 
8.3 Client v2 
8.3.1 KeysAPI接口
8.3.2 httpClient接口
本章小結
參考文獻