当前位置:主页 > 书籍配套资源 > 分布式配套资源
《分布式对象存储:原理、架构及Go语言实现》配套资源

《分布式对象存储:原理、架构及Go语言实现》配套资源

  • 更新:2021-08-09
  • 大小:91.43 KB
  • 类别:分布式
  • 作者:胡世杰
  • 出版:人民邮电出版社
  • 格式:PDF

  • 资源介绍
  • 相关推荐

编辑推荐

适读人群 :本书适合从事云存储方面工作的工程师或架构师,也适合想要学习和实现分布式对象存储的读者。
赠送价值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

资源下载

资源下载地址1:https://box.lenovo.com/l/nuNdBU

相关资源

网友留言