發表於2024-12-14
分布式對象存儲:原理、架構及Go語言實現 pdf epub mobi txt 電子書 下載
第 1章 對象存儲簡介 1
1.1 和傳統網絡存儲的區彆 1
1.1.1 數據的管理方式 2
1.1.2 訪問數據的方式 2
1.1.3 對象存儲的優勢 3
1.2 單機版對象存儲的架構 4
1.2.1 REST接口 4
1.2.2 對象PUT流程 5
1.2.3 對象GET流程 5
1.3 Go語言實現 6
1.4 功能測試 10
1.5 小結 12
第 2章 可擴展的分布式係統 15
2.1 什麼是分布式係統 15
2.2 接口和數據存儲分離的架構 16
2.2.1 REST接口 17
2.2.2 RabbitMQ消息設計 18
2.2.3 對象PUT流程 19
2.2.4 對象GET流程 20
2.3 Go語言實現 21
2.3.1 數據服務 21
2.3.2 接口服務 23
2.3.3 rabbitmq包 34
2.4 功能測試 38
2.5 小結 41
第3章 元數據服務 45
3.1 什麼是元數據 45
3.1.1 係統定義的元數據 45
3.1.2 用戶自定義的元數據 45
3.1.3 散列值和散列函數 46
3.2 加入元數據服務的架構 47
3.2.1 REST接口 48
3.2.2 ES接口 51
3.2.3 對象PUT流程 54
3.2.4 對象GET流程 55
3.3 Go語言實現 55
3.3.1 接口服務 55
3.3.2 es包 63
3.4 功能測試 68
3.5 小結 74
第4章 數據校驗和去重 77
4.1 何為去重 77
4.1.1 需要數據校驗的原因 78
4.1.2 實現數據校驗的方法 79
4.2 給數據服務加入緩存功能 79
4.2.1 數據服務的REST
接口 80
4.2.2 對象PUT流程 80
4.3 Go語言實現 82
4.3.1 接口服務 82
4.3.2 數據服務 87
4.4 功能測試 98
4.5 去重導緻的性能問題 101
4.6 小結 102
第5章 數據冗餘和即時修復 105
5.1 數據冗餘的概念 105
5.1.1 數據丟失和數據
不可用 105
5.1.2 數據冗餘 106
5.1.3 對象存儲係統的數據
冗餘策略 107
5.2 數據冗餘的實現 108
5.2.1 REST接口 108
5.2.2 對象PUT流程 108
5.2.3 對象GET流程 109
5.3 Go語言實現 111
5.3.1 接口服務 111
5.3.2 數據服務 126
5.4 功能測試 131
5.5 小結 135
第6章 斷點續傳 139
6.1 為什麼對象存儲需要支持
斷點續傳 139
6.1.1 斷點下載流程 139
6.1.2 斷點上傳流程 140
6.1.3 接口服務的REST
接口 142
6.1.4 數據服務的REST
接口 144
6.2 Go語言實現 145
6.2.1 接口服務 145
6.2.2 數據服務 158
6.3 功能測試 160
6.4 小結 165
第7章 數據壓縮 169
7.1 用gzip實現對象存儲和下載時的數據壓縮 170
7.1.1 存儲時的數據壓縮 170
7.1.2 下載時的數據壓縮 171
7.1.3 接口服務的REST
接口 172
7.2 Go語言實現 172
7.2.1 接口服務 172
7.2.2 數據服務 174
7.3 功能測試 176
7.4 小結 180
第8章 數據維護 183
8.1 對象存儲係統的數據維護
工作 183
8.1.1 對象版本留存 183
8.1.2 數據定期檢查和
修復 184
8.1.3 數據服務的REST
接口 185
8.2 Go語言實現 185
8.2.1 刪除過期元數據 185
8.2.2 刪除沒有元數據引用的
對象數據 188
8.2.3 對象數據的檢查和
修復 191
8.3 功能測試 193
8.4 小結 202
分布式對象存儲:原理、架構及Go語言實現 pdf epub mobi txt 電子書 下載