分布式对象存储:原理 架构及Go语言实现 胡世杰著 PDF下载

转载至:  https://www.jb51.net/books/682026.html

下载链接: 

下载声明:  本资料仅供个人学习和研究使用,不能用于商业用途,请在下载后24小时内删除。如果喜欢,请购买正版!

本书首先从一个最简单的对象存储服务原型开始,讨论在原型中存在的问题并介绍对象存储服务中一些常见的概念以及设计理念,然后通过改变架构或添加功能的方式解决这些问题。这一迭代步骤将发生多次,最终我们会收获一个足够完善的对象存储服务

第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

打赏 支付宝打赏 微信打赏

如果文章对您有帮助,欢迎移至上方打赏按钮...

随手一点
  • 打酱油

    15人

  • 39人

  • 呵呵

    1人

  • 草泥马

    1人

文章评论 抢沙发