本篇主要提供分布式协议与算法实战电子书的pdf版本下载,本电子书下载方式为百度网盘方式,点击以上按钮下单完成后即会通过邮件和网页的方式发货,有问题请联系邮箱ebook666@outlook.com
这是一本以实战为导向、系统讲解分布式协议与算法、深刻揭示分布式系统精髓与本质的著作。作者以自己在腾讯和Intel的多年分布式系统工程经验为基础,用图文并茂、通俗易懂的方式详细讲解了分布式的基础理论、协议、算法,以及它们如何在工程实践中落地。
通过本书,你将掌握如下核心知识:
(1)4大分布式基础理论
详细讲解分布式架构设计的核心基础理论,包括拜占庭将军问题、CAP理论、ACID理论、BASE理论,这些理论能指导你在实战中根据场景特点选择合适的分布式算法。
(2)10种常用的分布式协议和算法
详细讲解了Paxos算法、Raft算法、一致哈希算法、ZAB协议、Gossip协议、Quorum NWR协议、MySQL XA规范、TCC、PBFT算法、PoW算法等常用分布式协议和算法的的原理、特点、适用场景和常见误区等。
(3)3大综合实战案例
通过3个综合案例讲解了分布式基础理论和分布式算法在工程实践中的应用,教你将所学知识真正落地。包括InfluxDB企业版的CP架构和AP架构的设计和背后思考,以及Raft、Quorum NWR、Anti-Entropy等分布式算法的具体实现。
赞誉
序
前言
理论篇
第1章 拜占庭将军问题
1.1 什么是拜占庭将军问题
1.1.1 苏秦的困境
1.1.2 二忠一叛难题
1.2 口信消息,我们该如何处理呢
1.3 如何解决□的限制
1.3.1 什么是签名消息
1.3.2 签名消息型拜占庭问题之解
1.4 拜占庭容错算法和非拜占庭容错算法,该如何选择呢
1.5 本章小结
第2章 CAP理论
2.1 CAP理论:分布式系统的ph试纸,用它来测酸碱度
2.1.1 CAP三指标
2.1.2 CAP不可能三角
2.1.3 如何使用CAP理论
2.2 ACID理论:CAP的“酸”,追求一致性
2.2.1 二阶段提交协议
2.2.2 TCC
2.3 BASE理论:CAP的“碱”,追求可用性
2.3.1 实现基本可用的4板斧
2.3.2 终一致性
2.3.3 如何使用BASE理论
2.4 本章小结
协议与算法篇
第3章 Paxos算法
3.1 Basic Paxos:如何在多个节点间确定某变量的值
3.1.1 你需要了解的3种角色
3.1.2 如何达成共识
3.2 Multi-Paxos:Multi-Paxos不是一个算法,而是统称
3.2.1 兰伯特关于Multi-Paxos的思考
3.2.2 Chubby是如何实现Multi-Paxos算法的
3.3 本章小结
第4章 Raft算法
4.1 Raft是如何选举领导者的
4.1.1 有哪些成员身份
4.1.2 选举领导者的过程
4.1.3 选举过程四连问
4.2 Raft是如何复制日志的
4.2.1 如何理解日志
4.2.2 如何复制日志
4.2.3 如何实现日志的一致性
4.3 Raft是如何解决成员变更问题的
4.3.1 成员变更问题
4.3.2 如何通过单节点变更解决成员变更问题
4.4 Raft与一致性
4.5 本章小结
第5章 一致哈希算法
5.1 使用哈希算法有什么问题
5.2 如何使用一致哈希算法实现哈希寻址
5.3 本章小结
第6章 ZAB协议
6.1 如何实现操作的顺序性
6.1.1 为什么Multi-Paxos无法保证操作的顺序性
6.1.2 ZAB协议是如何实现操作的顺序性的
6.2 主节点崩溃了,怎么办
6.2.1 ZAB协议是如何选举领导者的
6.2.2 ZooKeeper是如何选举领导者的
6.3 如何从故障中恢复
6.3.1 ZAB集群如何从故障中恢复
6.3.2 ZooKeeper如何从故障中恢复
6.4 ZAB协议:如何处理读写请求
6.4.1 ZooKeeper处理读写请求的原理
6.4.2 ZooKeeper处理读写请求的代码实现
6.5 ZAB协议与Raft算法
6.6 本章小结
第7章 Gossip协议
7.1 Gossip的三板斧
7.2 如何使用反熵实现终一致性
7.3 本章小结
第8章 Quorum NWR算法
8.1 Quorum NWR的三要素
8.2 如何实现Quorum NWR
8.3 本章小结
第9章 MySQL XA
9.1 什么是XA规范
9.2 如何通过MySQL XA实现分布式事务
9.3 本章小结
第10章 TCC
10.1 什么是TCC
10.2 如何通过TCC实现指令执行的原子性
10.3 本章小结
第11章 PBFT算法
11.1 口信消息型拜占庭问题之解的局限
11.2 PBFT算法是如何达成共识的
11.3 如何替换作恶的主节点
11.3.1 主节点作恶会出现什么问题
11.3.2 如何替换作恶的主节点
11.4 PBFT算法的局限、解决办法和应用
11.5 本章小结
第12章 PoW算法
12.1 如何理解工作量证明
12.2 区块链是如何实现PoW算法的
12.3 本章小结
实战篇
第13章 InfluxDB企业版一致性实现剖析
13.1 什么是时序数据库
13.2 如何实现META节点一致性
13.3 如何实现DATA节点一致性
13.3.1 自定义副本数
13.3.2 Hinted-handoff
13.3.3 反熵
13.3.4 Quorum NWR
13.4 本章小结
第14章 Hashicorp Raft
14.1 如何跨过理论和代码之间的鸿沟
14.1.1 Hashicorp Raft如何实现领导者选举
14.1.2 Hashicorp Raft如何复制日志
14.2 如何以集群节点为中心使用API
14.2.1 如何创建Raft节点
14.2.2 如何增加集群节点
14.2.3 如何移除集群节点
14.2.4 如何查看集群节点状态
14.3 本章小结
第15章 基于Raft的分布式KV系统开发实战
15.1 如何设计架构
15.1.1 如何设计接入协议
15.1.2 如何设计KV操作
15.1.3 如何实现分布式集群
15.2 如何实现代码
15.2.1 如何实现接入协议
15.2.2 如何实现KV操作
15.2.3 如何实现分布式集群
15.3 本章小结
韩健,资深分布式技术专家,拥有10余年技术研发和管理经验。曾就职于腾讯(前腾讯QQ后端基础设施技术负责人)和Intel,从事与大规模分布式系统和云计算相关的工作。
在大规模分布式系统领域有非常深厚的积累,擅长分布式、高性能、高并发、高可用的海量服务中间件的架构设计和开发,尤其是与大数据中间件相关的各种技术。在操作系统和计算机网络领域也有非常丰富的实践经验,对Linux内核、TCP/IP等技术有深入的理解。
热衷于技术分享,是FreeTSDB(业界第一个补齐了InfluxDB分布式能力的开源时序数据库)的发起人和核心贡献者。极客时间专栏作家,《分布式协议与算法实战》专栏作者,著有畅销书《InfluxDB原理与实战》。