万本电子书0元读

万本电子书0元读

顶部广告

分布式对象存储——原理、架构及Go语言实现电子书

赠送价值249元的云存储专家视频课程 掌握云存储理论,动手搭建分布式对象存储架构 云存储已经是大家司空见惯的一种网络服务了,比如大家常用的百度云盘、亚马逊S3、微软的OneDrive、苹果公司的iCloud和谷歌的Google Cloud等。云存储背后的原理是怎样的,又是如何实现的呢? 本书完全从云存储的需求出发讲述对象存储的原理,并且带领读者使用Go语言编程,循序渐、从无到有地建立起一个分布式对象存储的架构。也就是说,本书首先介绍为什么要这么做,然后解释怎么做。

售       价:¥

纸质售价:¥43.90购买纸书

449人正在读 | 0人评论 6.2

作       者:胡世杰

出  版  社:人民邮电出版社

出版时间:2018-06-01

字       数:14.6万

所属分类: 科技 > 计算机/网络 > 程序设计

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
本书从云存储的需求出发讲述对象存储的原理,循序渐地建立起一个分布式对象存储的架构,并且将软件实现出来。全书共8章,分别涉及对象存储简介、可扩展分布式系统、元数据服务、数据校验和去重、数据冗余处理、断续传、数据压缩和数据维护等。本书选择用来实现分布式对象存储软件的编程语言是当前流行的Go语言。 本书适合从事云存储方面工作的工程师或架构师,也适合想要学习和实现分布式对象存储的读者。<br/>【推荐语】<br/>赠送价值249元的云存储专家视频课程 掌握云存储理论,动手搭建分布式对象存储架构 云存储已经是大家司空见惯的一种网络服务了,比如大家常用的百度云盘、亚马逊S3、微软的OneDrive、苹果公司的iCloud和谷歌的Google Cloud等。云存储背后的原理是怎样的,又是如何实现的呢? 本书完全从云存储的需求出发讲述对象存储的原理,并且带领读者使用Go语言编程,循序渐、从无到有地建立起一个分布式对象存储的架构。也就是说,本书首先介绍为什么要这么做,然后解释怎么做。 本书适合云存储方面的研究者、工程师或架构师阅读,也可以供对云存储技术感兴趣的读者参考。在读完本书之后,你将较为深地理解对象存储服务,甚至能够实现自己的对象存储服务。 本书包括以下内容: ★ 对象存储简介; ★ 分布式系统原理; ★ 元数据以及元数据服务; ★ 数据校验和去重; ★ 数据冗余和即时修复; ★ 断续传; ★ 数据压缩; ★ 数据维护。<br/>【作者】<br/>胡世杰,上海交通大学毕业,目前在七牛云任职技术专家,是私有云存储服务的负责人。他是分布式对象存储系统专家,在该领域拥有多年的架构、发和部署经验,精通C、C 、Perl、Python、Ruby、Go等多种编程语言,熟悉ElasticSearch、RabbitMQ等源软件。除了自己写作,他还致力于技术书籍的翻译,是《JavaScript面向对象精要》《Python和HDF5大数据应用》《Python高性能编程》等图书的译者。<br/>
目录展开

版权

内容提要

前言

资源与支持

第1章 对象存储简介

1.1 和传统网络存储的区别

1.1.1 数据的管理方式

1.1.2 访问数据的方式

1.1.3 对象存储的优势

1.2 单机版对象存储的架构

1.2.1 REST接口

1.2.2 对象PUT流程

1.2.3 对象GET流程

1.3 Go语言实现

1.4 功能测试

1.5 小结

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

2.1 什么是分布式系统

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

2.2.1 REST接口

2.2.2 RabbitMQ消息设计

2.2.3 对象PUT流程

2.2.4 对象GET流程

2.3 Go语言实现

2.3.1 数据服务

数据服务的heartbeat包

数据服务的locate包

2.3.2 接口服务

接口服务的heartbeat包

接口服务的locate包

接口服务的objects包

2.3.3 rabbitmq包

2.4 功能测试

2.5 小结

第3章 元数据服务

3.1 什么是元数据

3.1.1 系统定义的元数据

3.1.2 用户自定义的元数据

3.1.3 散列值和散列函数

3.2 加入元数据服务的架构

3.2.1 REST接口

3.2.2 ES接口

ES映射结构

添加对象元数据的步骤

用到的ES API

3.2.3 对象PUT流程

3.2.4 对象GET流程

3.3 Go语言实现

3.3.1 接口服务

接口服务的versions包

接口服务的objects包

3.3.2 es包

3.4 功能测试

3.5 小结

第4章 数据校验和去重

4.1 何为去重

4.1.1 需要数据校验的原因

4.1.2 实现数据校验的方法

4.2 给数据服务加入缓存功能

4.2.1 数据服务的REST接口

4.2.2 对象PUT流程

4.3 Go语言实现

4.3.1 接口服务

4.3.2 数据服务

数据服务的locate包

数据服务的temp包

数据服务的objects包

4.4 功能测试

4.5 去重导致的性能问题

4.6 小结

第5章 数据冗余和即时修复

5.1 数据冗余的概念

5.1.1 数据丢失和数据不可用

5.1.2 数据冗余

5.1.3 对象存储系统的数据冗余策略

5.2 数据冗余的实现

5.2.1 REST接口

5.2.2 对象PUT流程

5.2.3 对象GET流程

5.3 Go语言实现

5.3.1 接口服务

接口服务的locate包

接口服务的heartbeat包

接口服务的objects包

5.3.2 数据服务

数据服务的locate包

数据服务的temp包

数据服务的objects包

5.4 功能测试

5.5 小结

第6章 断点续传

6.1 为什么对象存储需要支持断点续传

6.1.1 断点下载流程

6.1.2 断点上传流程

6.1.3 接口服务的REST接口

6.1.4 数据服务的REST接口

6.2 Go语言实现

6.2.1 接口服务

接口服务的objects包

接口服务的temp包

6.2.2 数据服务

6.3 功能测试

6.4 小结

第7章 数据压缩

7.1 用gzip实现对象存储和下载时的数据压缩

7.1.1 存储时的数据压缩

7.1.2 下载时的数据压缩

7.1.3 接口服务的REST接口

7.2 Go语言实现

7.2.1 接口服务

7.2.2 数据服务

7.3 功能测试

7.4 小结

第8章 数据维护

8.1 对象存储系统的数据维护工作

8.1.1 对象版本留存

8.1.2 数据定期检查和修复

8.1.3 数据服务的REST接口

8.2 Go语言实现

8.2.1 删除过期元数据

8.2.2 删除没有元数据引用的对象数据

8.2.3 对象数据的检查和修复

8.3 功能测试

8.4 小结

累计评论(0条) 0个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部