万本电子书0元读

万本电子书0元读

顶部广告

分布式系统与一致性电子书

高并发高可用系统实战||||复杂系统核心特性精解

售       价:¥

纸质售价:¥62.40购买纸书

92人正在读 | 0人评论 6.2

作       者:陈东明

出  版  社:电子工业出版社

出版时间:2021-05-01

字       数:17.1万

所属分类: 科技 > 计算机/网络 > 计算机理论与教程

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

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
一致性是非常重要的分布式技术。众所周知,分布式系统有很多特性,如可用性、可靠性等,这些特性多多少少会与一致性产生关系,受到一致性的影响。要全面研究、掌握分布式技术,一致性是绕不的一个话题,也是*难解决的一个问题。本书主要介绍GFS、HDFS、BigTable、MongoDB、RabbitMQ、ZooKeeper、Spanner、CockroachDB系统与一致性有关的实现细节,以及非常重要的Paxos、Raft、Zab分布式算法;本书还介绍了事务一致性与隔离级别、顺序一致性、线性一致性与强一致性相关内容,以及架构设计中的权衡等。从分布式技术的角度来说,本书讲解了分布式领域比较高阶的内容,但是从分布式一致性的角度来说,本书仍然是一致性的门书。<br/>【作者】<br/>陈东明: 饿了么北京技术中心架构组负责人,负责饿了么的产品线架构设计以及基础架构研发工作,主导发eleme key-value数据库。曾任百度架构师负责百度即时通讯产品的架构设计。具有丰富的大规模系统构建和基础架构的?x发经验,善于复杂业务需求下的大并发、分布式系统设计和持续优化。<br/>
目录展开

前折页

内容简介

分布式架构的终极奥义

前言

第1部分 开篇

第1章 分布式系统的核心特性:一致性

1.1 拆分是解决大规模应用问题的本质

1.2 分布式技术是大规模应用的最后一个考验

1.3 一致性是这个考验的核心

第2部分 系统案例

第2章 Google的文件系统

2.1 GFS的外部接口和架构

2.1.1 GFS的外部接口

2.1.2 GFS的架构

2.2 GFS的写流程细节

2.2.1 名字空间管理和锁保护

2.2.2 租约

2.2.3 变更及变更次序

2.3 GFS的原子性

2.3.1 write和record append的区别

2.3.2 GFS中原子性的含义

2.3.3 GFS中多副本之间不具有原子性

2.4 GFS的松弛一致性

2.4.1 元数据的一致性

2.4.2 文件数据的一致性

2.4.3 适应GFS的松弛一致性

2.4.4 GFS的设计哲学

参考文献

第3章 开源的文件系统HDFS

3.1 HDFS的外部接口和架构

3.1.1 HDFS的外部接口

3.1.2 HDFS的架构

3.2 HDFS的写流程细节

3.2.1 打开文件

3.2.2 pipeline写入

3.2.3 上报block状态

3.2.4 关闭文件

3.2.5 DN定期上报信息

3.3 HDFS的错误处理

3.3.1 DN的错误

3.3.2 NN的错误

3.3.3 客户端的错误

参考文献

第4章 Google的BigTable系统

4.1 BigTable的外部接口和架构

4.1.1 表

4.1.2 数据

4.1.3 原子性

4.1.4 时间戳

4.1.5 BigTable的数据模型

4.1.6 BigTable的架构

4.2 BigTable的实现

4.2.1 tablet location

4.2.2 tablet的指派

4.2.3 加载tablet

4.2.4 tablet的读/写操作

4.2.5 合并

参考文献

第5章 文档数据库MongoDB

5.1 MongoDB的外部接口和架构

5.1.1 MongoDB的基本概念

5.1.2 MongoDB的架构

5.2 MongoDB的standalone模式

5.2.1 MongoDB的写入过程

5.2.2 无确认导致的丢失更新异常

5.2.3 未持久化导致的丢失更新异常

5.3 MongoDB的replica set模式

5.3.1 MongoDB的复制过程

5.3.2 无副本确认导致的丢失更新异常

5.3.3 不正确选主导致的丢失更新异常

5.3.4 脑裂导致的丢失更新异常

5.3.5 缺失任期信息导致的丢失更新异常

5.3.6 脏读异常

5.3.7 陈旧读异常

第6章 消息系统RabbitMQ

6.1 RabbitMQ简述

6.1.1 关于broker

6.1.2 RabbitMQ的接口

6.1.3 镜像队列

6.2 RabbitMQ的基本实现

6.2.1 镜像复制

6.2.2 镜像加入队列

6.2.3 镜像同步过程

6.3 master切换及RabbitMQ的异常处理

6.3.1 意外宕机后的master切换

6.3.2 主动运维后的master切换

6.3.3 意外宕机与主动运维的默认行为差异

6.3.4 网络分区后的master切换

6.4 确认机制

第7章 协调服务ZooKeeper

7.1 协调服务的应用场景

7.2 ZooKeeper简述

7.2.1 ZooKeeper的数据模型

7.2.2 ZooKeeper的外部接口

7.2.3 ZooKeeper的架构

7.3 ZooKeeper的实现细节

7.3.1 客户端异步处理

7.3.2 请求处理器

7.3.3 原子广播

参考文献

第8章 Google的Spanner数据库

8.1 Spanner的数据模型

8.1.1 带模式的半关系型表

8.1.2 通用事务

8.2 Spanner的架构

8.3 Spanner的实现

8.3.1 tablet与存储

8.3.2 复制

8.3.3 TrueTime

8.3.4 事务

8.3.5 目录

8.3.6 Paxos的作用

8.4 TrueTime的作用

8.4.1 Spanner的外部一致性

8.4.2 TrueTime生成事务时间戳

8.4.3 TrueTime管理leader租约

8.4.4 TrueTime作用的总结

参考文献

第9章 分布式数据库CockroachDB

9.1 CockroachDB的接口和数据模型

9.2 CockroachDB的架构

9.3 元数据存储的实现

9.4 多副本存储的实现

9.5 事务的实现

9.5.1 单个事务的执行

9.5.2 多个事务串行执行

9.5.3 事务的并发执行

参考文献

第3部分 分布式算法

第10章 共识算法Paxos

10.1 Paxos的历史

10.2 Consensus vs Paxos

10.3 Basic Paxos算法

10.3.1 共识问题

10.3.2 算法简述

10.3.3 选择值过程

10.4 Multi Paxos算法

10.4.1 多个实例

10.4.2 独立实例运行的完整Paxos算法

10.4.3 只运行一次prepare消息的完整Paxos算法

10.5 复制状态机

10.6 Paxos算法与复制状态机

10.6.1 Paxos算法实现复制状态机

10.6.2 空洞处理

10.7 原子广播

10.7.1 原子广播协议

10.7.2 原子广播的模型

10.7.3 原子广播的特性

10.8 Paxos算法与原子广播

10.8.1 Paxos consensus实例与原子广播

10.8.2 Paxos的角色与原子广播

参考文献

第11章 复制日志算法Raft

11.1 Raft是复制日志的算法

11.2 Raft算法的组成

11.3 复制过程

11.4 选举过程

11.4.1 选举的基本条件

11.4.2 任期

11.4.3 完整的选举过程

11.5 异常处理

11.5.1 不一致异常

11.5.2 一致性检查

11.5.3 不提交旧的leader的entry

参考文献

第12章 原子广播算法Zab

12.1 Zab算法简述

12.1.1 设计的Zab算法与ZooKeeper中实现的Zab算法

12.1.2 Zab算法的阶段

12.2 各版本Zab算法的共有部分

12.2.1 Zab算法的基本概念

12.2.2 Zab算法的broadcast阶段

12.2.3 Zab算法的消息通道

12.2.4 Zab算法的broadcast阶段的特性

12.2.5 已提交的提议

12.2.6 故障处理

12.3 设计的Zab算法

12.3.1 Phase0:election阶段

12.3.2 Phase1:discovery阶段

12.3.3 Phase2:synchronization阶段

12.3.4 Phase3:broadcast阶段

12.3.5 设计的Zab算法的问题

12.3.6 设计的Zab算法处理leader故障

12.4 Zab Pre 1.0算法

12.4.1 leader election阶段

12.4.2 recovery阶段

12.4.3 Zab Pre 1.0算法处理leader宕机故障

12.4.4 Zab Pre 1.0算法的缺陷

12.5 Zab 1.0算法

12.5.1 Phase0:leader election阶段

12.5.2 Phase1:discovery阶段

12.5.3 Phase2:synchronization阶段

12.5.4 Zab 1.0算法处理leader宕机故障

参考文献

第4部分 一致性

第13章 事务一致性与隔离级别

13.1 ANSI的隔离级别

13.1.1 ANSI的隔离级别定义

13.1.2 对一致性的破坏

13.1.3 脏写

13.1.4 锁机制

13.2 SI和SSI隔离级别

13.2.1 MVCC

13.2.2 SI隔离级别

13.2.3 SSI隔离级别

参考文献

第14章 顺序一致性

14.1 顺序一致性的正式定义

14.1.1 顺序一致性应用的范围

14.1.2 顺序一致性的定义

14.1.3 核心概念的解释

14.1.4 定义解析

14.1.5 在分布式系统中的定义

14.1.6 举例说明

14.2 理解顺序一致性

14.2.1 顺序排序

14.2.2 程序顺序

14.2.3 顺序一致性是严苛的

14.3 顺序一致性的其他描述

14.3.1 第一种描述:全局视角一致

14.3.2 第二种描述:允许重排序

14.4 顺序一致性的作用

14.4.1 并发条件

14.4.2 原子性

参考文献

第15章 线性一致性与强一致性

15.1 什么是线性一致性

15.1.1 预备概念

15.1.2 定义

15.2 判断系统是否满足线性一致性

15.3 对线性一致性的理解与强一致性

15.3.1 线性一致性的其他描述

15.3.2 线性一致性与顺序一致性的比较

15.3.3 强一致性

15.4 ZooKeeper的一致性分析

15.4.1 ZooKeeper是顺序一致性的

15.4.2 ZooKeeper的一致性的作用

15.4.3 ZooKeeper的一致性的描述

参考文献

第16章 架构设计中的权衡

16.1 什么是CAP定理

16.1.1 CAP历史:从原则到定理

16.1.2 CAP的定义

16.1.3 CAP定理下的三种系统

16.1.4 深入理解CAP定理中的P和A

16.2 关于CAP定理的错误理解

16.2.1 不是三选二,不能不选P

16.2.2 不是三分法

16.2.3 不该轻易放弃任何一个属性

16.3 CAP中的权衡

16.3.1 弱CAP原则

16.3.2 CAP推动NoSQL

16.3.3 分布式系统中的可用性和一致性

16.4 进一步权衡:HAT和PACELC

16.4.1 HAT

16.4.2 权衡

16.4.3 PACELC

参考文献

后折页

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

发表评论

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

买过这本书的人还买过

读了这本书的人还在读

回顶部