《雲原生分散式存儲基石:etcd深入解析》是2018年機械工業出版社出版的圖書。
基本介紹
- 中文名:雲原生分散式存儲基石:etcd深入解析
- 出版時間:2018年11月1日
- 出版社:機械工業出版社
- ISBN:9787111611929
內容簡介,圖書目錄,
內容簡介
本書為讀者深度解析分散式鍵值存儲系統,全書分為3部分,第1部分是對分散式系統的概念和一致性協定的綜述,重點解析Raft協定,使讀者對分散式鍵值存儲系統有初步了解;第2部分介紹etcd安裝、部署、運維、安全等方面的知識,幫助讀者進一步掌握分散式系統的使用方法,熟悉其常見功能和使用場景;第3部分是本書的特色部分,從代碼層次深入探討了etcd各大關鍵特性的具體設計與實現原理,讀者讀完本部分,會對整個etcd的架構有更加清晰的認識,可以從中汲取靈感,從而將一些實用的經驗套用到自己的分散式系統中。
圖書目錄
前言
第一部分 基礎篇
第1章 分散式系統與一致性協定2
1.1 CAP原理3
1.2 一致性5
1.2.1 一致性模型7
1.2.2 一致性模型分述9
1.2.3 複製狀態機16
1.2.4 拜占庭將軍問題18
1.2.5 FLP不可能性19
1.2.6 小結21
1.3 Paxos協定22
1.4 Raft協定:為可理解性而生24
1.4.1 Raft一致性算法26
1.4.2 可用性與時序45
1.4.3 異常情況46
1.4.4 日誌壓縮與快照52
1.4.5 Raft算法性能評估56
1.4.6 小結58
第二部分 實戰篇
第2章 為什麼使用etcd62
2.1 etcd是什麼64
2.2 etcd架構簡介66
2.2.1 etcd數據通道69
2.2.2 etcd架構71
2.3 etcd典型套用場景舉例72
2.3.1 服務註冊與發現72
2.3.2 訊息發布和訂閱75
2.3.3 負載均衡76
2.3.4 分散式通知與協調77
2.3.5 分散式鎖78
2.3.6 分散式佇列80
2.3.7 集群監控與Leader競選81
2.3.8 小結82
2.4 etcd性能測試82
2.4.1 etcd讀性能82
2.4.2 etcd寫性能83
2.5 etcd與其他鍵值存儲系統的對比84
2.5.1 ZooKeeper VS etcd85
2.5.2 Consul VS etcd88
2.5.3 NewSQL(Cloud Spanner、CockroachDB、TiDB)VS etcd88
2.5.4 使用etcd做分散式協同89
2.5.5 小結90
2.6 使用etcd的項目90
2.7 etcd概念辭彙表91
2.8 etcd發展里程碑92
2.8.1 etcd 0.4版本93
2.8.2 etcd 2.0版本93
2.8.3 etcd 3.0版本93
第3章 etcd初體驗95
3.1 單機部署95
3.1.1 單實例etcd95
3.1.2 多實例etcd98
3.2 多節點集群化部署100
3.2.1 靜態配置101
3.2.2 服務發現104
3.3 etcdctl常用命令行107
3.3.1 key的常規操作107
3.3.2 key的歷史與watch112
3.3.3 租約115
3.4 etcd常用配置參數117
3.4.1 member相關參數項117
3.4.2 cluster相關參數項118
3.4.3 proxy相關參數項120
3.4.4 安全相關參數項120
3.4.5 日誌相關參數項121
3.4.6 不安全參數項121
3.4.7 統計相關參數項122
3.4.8 認證相關參數項122
第4章 etcd開放API之v2123
4.1 API保證124
4.2 etcd v2 API126
4.2.1 集群管理API126
4.2.2 鍵值API126
4.2.3 鍵的TTL130
4.2.4 等待變化通知:watch134
4.2.5 自動創建有序key146
4.2.6 目錄TTL148
4.2.7 原子的CAS149
4.2.8 原子的CAD151
4.2.9 創建目錄153
4.2.10 羅列目錄154
4.2.11 刪除目錄156
4.2.12 獲取一個隱藏節點157
4.2.13 通過檔案設定key158
4.2.14 線性讀158
4.3 統計數據158
4.3.1 Leader數據159
4.3.2 節點自身的數據160
4.3.3 更多統計數據161
4.4 member API162
4.4.1 List member162
4.4.2 加入一個member163
4.4.3 刪除一個member163
4.4.4 修改member的peer URL164
第5章 etcd開放API之v3165
5.1 從etcd v2到etcd v3166
5.1.1 gRPC167
5.1.2 序列化和反序列化最佳化167
5.1.3 減少TCP連線167
5.1.4 租約機制167
5.1.5 etcd v3的觀察者模式168
5.1.6 etcd v3的數據存儲模型169
5.1.7 etcd v3的迷你事務170
5.1.8 快照171
5.1.9 大規模watch171
5.2 gRPC服務172
5.3 請求和回響174
5.4 KV API176
5.4.1 鍵值對176
5.4.2 revision177
5.4.3 鍵區間178
5.4.4 Range API178
5.4.5 PUT調用181
5.4.6 事務182
5.4.7 Compact調用186
5.5 watch API186
5.5.1 Event187
5.5.2 流式watch187
5.6 Lease API190
5.6.1 獲得租約190
5.6.2 Keep Alives192
5.7 API使用示例192
第6章 etcd集群運維與穩定性195
6.1 etcd升級195
6.1.1 etcd從2.3升級到3.0195
6.1.2 etcd從3.0升級到3.1199
6.2 從etcd v2切換到v3202
6.2.1 切換客戶端代碼202
6.2.2 數據遷移203
6.3 運行時重配置204
6.3.1 兩階段配置更新保證集群安全205
6.3.2 永久性失去半數以上member206
6.4 參數調優207
6.4.1 時間參數207
6.4.2 快照208
6.4.3 磁碟209
6.4.4 網路209
6.5 監控209
6.6 維護210
6.6.1 壓縮歷史版本210
6.6.2 消除碎片化211
6.6.3 存儲配額211
6.6.4 快照備份213
6.7 災難恢復213
6.7.1 快照214
6.7.2 恢復集群214
6.8 etcd網關215
6.8.1 什麼時候使用etcd網關216
6.8.2 什麼時候不該使用etcd網關216
6.8.3 啟動etcd網關217
6.9 gRPC代理217
6.9.1 可擴展的watch API218
6.9.2 限制219
6.9.3 可擴展的帶租約的API219
6.9.4 服務端保護220
6.9.5 啟動gRPC代理220
6.9.6 客戶端節點同步和域名解析221
6.9.7 名字空間222
6.10 故障恢復223
6.10.1 小部分從節點故障223
6.10.2 主節點故障224
6.10.3 大部分節點故障224
6.10.4 網路分區224
6.10.5 集群啟動異常225
6.11 硬體225
第7章 etcd安全231
7.1 訪問安全231
7.1.1 許可權資源232
7.1.2 鍵值資源234
7.1.3 配置資源234
7.2 etcd訪問控制實踐235
7.2.1 User相關命令235
7.2.2 Role相關命令236
7.2.3 啟用用戶許可權功能237
7.3 傳輸安全238
7.3.1 TLS/SSL工作原理239
7.3.2 使用TLS加密etcd通信241
……