注冊 | 登錄讀書好,好讀書,讀好書!
讀書網-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網絡數據庫分布式系統與一致性

分布式系統與一致性

分布式系統與一致性

定 價:¥79.00

作 者: 陳東明 著
出版社: 電子工業(yè)出版社
叢編項:
標 簽: 暫缺

購買這本書可以去


ISBN: 9787121410413 出版時間: 2021-06-01 包裝: 平裝
開本: 16開 頁數: 字數:  

內容簡介

  一致性是非常重要的分布式技術。眾所周知,分布式系統有很多特性,如可用性、可靠性等,這些特性多多少少會與一致性產生關系,受到一致性的影響。要全面研究、掌握分布式技術,一致性是繞不開的一個話題,也是最難解決的一個問題。本書主要介紹GFS、HDFS、BigTable、MongoDB、RabbitMQ、ZooKeeper、Spanner、CockroachDB系統與一致性有關的實現細節(jié),以及非常重要的Paxos、Raft、Zab分布式算法;本書還介紹了事務一致性與隔離級別、順序一致性、線性一致性與強一致性相關內容,以及架構設計中的權衡等。 從分布式技術的角度來說,本書講解了分布式領域比較高階的內容,但是從分布式一致性的角度來說,本書仍然是一致性的入門書。

作者簡介

  陳東明: 餓了么北京技術中心架構組負責人,負責餓了么的產品線架構設計以及基礎架構研發(fā)工作,主導開發(fā)eleme key-value數據庫。曾任百度架構師負責百度即時通訊產品的架構設計。具有豐富的大規(guī)模系統構建和基礎架構的硏發(fā)經驗,善于復雜業(yè)務需求下的大并發(fā)、分布式系統設計和持續(xù)優(yōu)化。

圖書目錄

第1部分 開 篇
第1章 分布式系統的核心特性:一致性 2
1.1 拆分是解決大規(guī)模應用的本質 2
1.2 分布式技術是大規(guī)模應用的最后一個考驗 4
1.3 一致性是這個考驗的核心 6
第2部分 系統案例
第2章 Google的文件系統 8
2.1 GFS的外部接口和架構 8
2.1.1 GFS的外部接口 8
2.1.2 GFS的架構 9
2.2 GFS的寫流程細節(jié) 11
2.2.1 名字空間管理和鎖保護 11
2.2.2 租約 11
2.2.3 變更及變更次序 11
2.3 GFS的原子性 13
2.3.1 write和record append的區(qū)別 13
2.3.2 GFS中原子性的含義 14
2.3.3 GFS中多副本之間不具有原子性 15
2.4 GFS的松弛一致性 15
2.4.1 元數據的一致性 15
2.4.2 文件數據的一致性 15
2.4.3 適應GFS的松弛一致性 16
2.4.4 GFS的設計哲學 17

第3章 開源的文件系統HDFS 19
3.1 HDFS的外部接口和架構 19
3.1.1 HDFS的外部接口 19
3.1.2 HDFS的架構 20
3.2 HDFS的寫流程細節(jié) 21
3.2.1 打開文件 22
3.2.2 pipeline寫入 22
3.2.3 上報block狀態(tài) 24
3.2.4 關閉文件 24
3.2.5 DN定期上報信息 24
3.3 HDFS的錯誤處理 25
3.3.1 DN的錯誤 25
3.3.2 NN的錯誤 26
3.3.3 客戶端的錯誤 26

第4章 Google的BigTable系統 30
4.1 BigTable的外部接口和架構 30
4.1.1 表 30
4.1.2 數據 31
4.1.3 原子性 32
4.1.4 時間戳 32
4.1.5 BigTable的數據模型 33
4.1.6 BigTable的架構 34
4.2 BigTable的實現 35
4.2.1 tablet location 35
4.2.2 tablet的指派 36
4.2.3 加載tablet 36
4.2.4 tablet的讀/寫操作 37
4.2.5 合并 38

第5章 文檔數據庫MongoDB 39
5.1 MongoDB的外部接口和架構 39
5.1.1 MongoDB的基本概念 39
5.1.2 MongoDB的架構 39
5.2 MongoDB的standalone模式 40
5.2.1 MongoDB的寫入過程 40
5.2.2 無確認導致的丟失更新異常 40
5.2.3 未持久化導致的丟失更新異常 41
5.3 MongoDB的replica set模式 42
5.3.1 MongoDB的復制過程 43
5.3.2 無副本確認導致的丟失更新異常 44
5.3.3 不正確選主導致的丟失更新異常 45
5.3.4 腦裂導致的丟失更新異常 47
5.3.5 缺失任期信息導致的丟失更新異常 48
5.3.6 臟讀異常 51
5.3.7 陳舊讀異常 52
第6章 消息系統RabbitMQ 54
6.1 RabbitMQ簡述 54
6.1.1 關于broker 54
6.1.2 RabbitMQ的接口 55
6.1.3 鏡像隊列 55
6.2 RabbitMQ的基本實現 55
6.2.1 鏡像復制 55
6.2.2 鏡像加入隊列 56
6.2.3 鏡像同步過程 56
6.3 master切換及RabbitMQ的異常處理 57
6.3.1 意外宕機后的master切換 57
6.3.2 主動運維后的master切換 57
6.3.3 意外宕機與主動運維的默認行為差異 58
6.3.4 網絡分區(qū)后的master切換 58
6.4 確認機制 59
第7章 協調服務ZooKeeper 60
7.1 協調服務的應用場景 60
7.2 ZooKeeper簡述 61
7.2.1 ZooKeeper的數據模型 61
7.2.2 ZooKeeper的外部接口 62
7.2.3 ZooKeeper的架構 63
7.3 ZooKeeper的實現細節(jié) 65
7.3.1 客戶端異步處理 65
7.3.2 請求處理器 65
7.3.3 原子廣播 67

第8章 Google的Spanner數據庫 69
8.1 Spanner的數據模型 69
8.2 Spanner的架構 72
8.3 Spanner的實現 73
8.4 TrueTime的作用 81

第9章 分布式數據庫CockroachDB 86
9.1 CockroachDB的接口和數據模型 86
9.2 CockroachDB的架構 87
9.3 元數據存儲的實現 88
9.4 多副本存儲的實現 90
9.5 事務的實現 92

第3部分 分布式算法
第10章 共識算法Paxos 108
10.1 Paxos的歷史 108
10.2 Consensus vs Paxos 110
10.3 Basic Paxos算法 111
10.4 Multi Paxos 算法 132
10.5 復制狀態(tài)機 144
10.6 Paxos算法與復制狀態(tài)機 146
10.7 原子廣播 148
10.8 Paxos算法與原子廣播 149

第11章 復制日志算法Raft 152
11.1 Raft是復制日志的算法 152
11.2 Raft算法的組成 153
11.3 復制過程 153
11.4 選舉過程 154
11.5 異常處理 157

第12章 原子廣播算法Zab 163
12.1 Zab算法簡述 163
12.2 各版本Zab算法的共有部分 164
12.3 設計的Zab算法 172
12.4 Zab Pre 1.0算法 177
12.5 Zab 1.0算法 179

第4部分 一 致 性
第13章 事務一致性與隔離級別 184
13.1 ANSI的隔離級別 185
13.2 SI和SSI隔離級別 190

第14章 順序一致性 193
14.1 順序一致性的正式定義 193
14.2 理解順序一致性 202
14.3 順序一致性的其他描述 204
14.4 順序一致性的作用 206

第15章 線性一致性與強一致性 210
15.1 什么是線性一致性 210
15.2 判斷系統是否滿足線性一致性 213
15.3 對線性一致性的理解與強一致性 216
15.4 ZooKeeper的一致性分析 219

第16章 架構設計中的權衡 225
16.1 什么是CAP定理 225
16.2 關于CAP定理的錯誤理解 228
16.3 CAP中的權衡 230
16.4 進一步權衡:HAT和PACELC 231

本目錄推薦

掃描二維碼
Copyright ? 讀書網 m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網安備 42010302001612號