《分布式对象存储:原理、架构及Go语言实现》[77M]百度网盘|pdf下载|亲测有效
《分布式对象存储:原理、架构及Go语言实现》[77M]百度网盘|pdf下载|亲测有效

分布式对象存储:原理、架构及Go语言实现 pdf下载

出版社 番茄雅图书专营店
出版年 2018-06
页数 390页
装帧 精装
评分 9.4(豆瓣)
8.99¥ 10.99¥

内容简介

本篇主要提供分布式对象存储:原理、架构及Go语言实现电子书的pdf版本下载,本电子书下载方式为百度网盘方式,点击以上按钮下单完成后即会通过邮件和网页的方式发货,有问题请联系邮箱ebook666@outlook.com

编辑推荐

赠送价值249元的云存储专家视频课程
掌握云存储理论,动手搭建分布式对象存储架构
云存储已经是大家司空见惯的一种网络服务了,比如大家常用的百度云盘、美亚S3、微软的OneDrive、苹果公司的iCloud和谷歌的Google Cloud等。云存储背后的原理是怎样的,又是如何实现的呢?
本书完全从云存储的需求出发讲述对象存储的原理,并且带领读者使用Go语言编程,循序渐进、从无到有地建立起一个分布式对象存储的架构。也就是说,本书首先介绍为什么要这么做,然后解释怎么做。
本书适合云存储方面的研究者、工程师或架构师阅读,也可以供对云存储技术感兴趣的读者参考。在读完本书之后,你将较为深入地理解对象存储服务,甚至能够实现自己的对象存储服务。
本书包括以下内容:
对象存储简介;
分布式系统原理;
元数据以及元数据服务;
数据校验和去重;
数据冗余和即时修复;
断点续传;
数据压缩;
数据维护。

容简介

本书从云存储的需求出发讲述对象存储的原理,循序渐进地建立起一个分布式对象存储的架构,并且将软件实现出来。全书共8章,分别涉及对象存储简介、可扩展分布式系统、元数据服务、数据校验和去重、数据冗余处理、断点续传、数据压缩和数据维护等。本书选择用来实现分布式对象存储软件的编程语言是当前流行的Go语言。
本书适合从事云存储方面工作的工程师或架构师,也适合想要学习和实现分布式对象存储的读者。

作者简介

胡世杰,上海交通大学毕业,目前在七牛云任职技术专家,是私有云存储服务的负责人。他是分布式对象存储系统专家,在该领域拥有多年的架构、开发和部署经验,精通C、C++、Perl、Python、Ruby、Go等多种编程语言,熟悉ElasticSearch、RabbitMQ等开源软件。除了自己写作,他还致力于技术书籍的翻译,是《JavaScript面向对象精要》《Python和HDF5大数据应用》《Python高性能编程》等图书的译者。

目录

第1章 对象存储简介1

1.1和传统网络存储的区别1

1.1.1数据的管理方式2

1.1.2访问数据的方式2

1.1.3对象存储的优势3

1.2单机版对象存储的架构4

1.2.1REST接口4

1.2.2对象PUT流程5

1.2.3对象GET流程5

1.3Go语言实现6

1.4功能测试10

1.5小结12

第2章 可扩展的分布式系统15

2.1什么是分布式系统15

2.2接口和数据存储分离的架构16

2.2.1REST接口17

2.2.2RabbitMQ消息设计18

2.2.3对象PUT流程19

2.2.4对象GET流程20

2.3Go语言实现21

2.3.1数据服务21

2.3.2接口服务23

2.3.3rabbitmq包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.1REST接口48

3.2.2ES接口51

3.2.3对象PUT流程54

3.2.4对象GET流程55

3.3Go语言实现55

3.3.1接口服务55

3.3.2es包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.3Go语言实现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.1REST接口108

5.2.2对象PUT流程108

5.2.3对象GET流程109

5.3Go语言实现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.2Go语言实现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.2Go语言实现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.2Go语言实现185

8.2.1删除过期元数据185

8.2.2删除没有元数据引用的

对象数据188

8.2.3对象数据的检查和

修复191

8.3功能测试193

8.4小结202