这书从云储存的要求去往讲述对象存储的基本原理,由浅入深地创建起一个分布式系统对象存储的构架,而且将手机软件建立出去。全书共8章,各自涉及到对象存储介绍、可拓展分布式系统、元数据服务、统计数据校验和去重复、数据冗余解决、断点续传、数据压缩和统计数据维护保养等。这书挑选用于建立分布式系统对象存储手机软件的计算机语言是当今时兴的Go語言。 这书合适从业云储存层面工作中的技术工程师或系统架构师,也合适你要学习培训和建立分布式系统对象存储的用户。
目录
- 第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