跳转至

从Paxos到Zookeeper:分布式一致性原理与实践-倪超

  •  从Paxos到Zookeeper:分布式一致性原理与实践|200
  • 书名: 从Paxos到Zookeeper:分布式一致性原理与实践
  • 作者: 倪超
  • 简介: 本书从分布式一致性的理论出发,向读者简要介绍几种典型的分布式一致性协议,以及解决分布式一致性问题的思路,其中重点讲解了Paxos和ZAB协议。同时,本书深入介绍了分布式一致性问题的工业解决方案——ZooKeeper,并着重向读者展示这一分布式协调框架的使用方法、内部实现及运维技巧,旨在帮助读者全面了解ZooKeeper,并更好地使用和运维ZooKeeper。全书共8章,分为五部分:第一部分(第1章)主要介绍了计算机系统从集中式向分布式系统演变过程中面临的挑战,并简要介绍了ACID、CAP和BASE等经典分布式理论;第二部分(第2~4章)介绍了2PC、3PC和Paxos三种分布式一致性协议,并着重讲解了ZooKeeper中使用的一致性协议——ZAB协议;第三部分(第5~6章)介绍了ZooKeeper的使用方法,包括客户端API的使用以及对ZooKeeper服务的部署与运行,并结合真实的分布式应用场景,总结了ZooKeeper使用的最佳实践;第四部分(第7章)对ZooKeeper的架构设计和实现原理进行了深入分析,包含系统模型、Leader选举、客户端与服务端的工作原理、请求处理,以及服务器角色的工作流程和数据存储等;第五部分(第8章)介绍了ZooKeeper的运维实践,包括配置详解和监控管理等,重点讲解了如何构建一个高可用的ZooKeeper服务。
  • 出版时间 2015-02-01 00:00:00
  • ISBN: 9787121249679
  • 分类: 计算机-计算机综合
  • 出版社: 电子工业出版社

高亮划线

封面

版权信息

问题的提出

第1章 分布式架构

1.1 从集中式到分布式

1.2 从ACID到CAP/BASE

  • 📌 CAP理论告诉我们,一个分布式系统不可能同时满足一致性(C:Consistency)、可用性(A:Availability)和分区容错性(P:Partition tolerance)这三个基本需求,最多只能同时满足其中的两项。 ^6-6308-6421

    • ⏱ 2024-03-23 20:33:45
  • 📌 从CAP定理中我们可以看出,一个分布式系统不可能同时满足一致性、可用性和分区容错性这三个需求。另一方面,需要明确的一点是,对于一个分布式系统而言,分区容错性可以说是一个最基本的要求。为什么这样说,其实很简单,因为既然是一个分布式系统,那么分布式系统中的组件必然需要被部署到不同的节点,否则也就无所谓分布式系统了,因此必然出现子网络。而对于分布式系统而言,网络问题又是一个必定会出现的异常情况,因此分区容错性也就成为了一个分布式系统必然需要面对和解决的问题。因此系统架构设计师往往需要把精力花在如何根据业务特点在C(一致性)和A(可用性)之间寻求平衡。 ^6-8768-9043

    • ⏱ 2024-03-23 20:37:38

小结

第2章 一致性协议

  • 📌 为了解决分布式一致性问题,在长期的探索研究过程中,涌现出了一大批经典的一致性协议和算法,其中最著名的就是二阶段提交协议、三阶段提交协议和Paxos算法了。 ^8-524-601
    • ⏱ 2024-03-23 20:40:14

2.1 2PC与3PC

  • 📌 目前,绝大部分的关系型数据库都是采用二阶段提交协议来完成分布式事务处理的,利用该协议能够非常方便地完成所有分布式事务参与者的协调,统一决定事务的提交或回滚,从而能够有效地保证分布式数据一致性,因此二阶段提交协议被广泛地应用在许多分布式系统中。 ^9-957-1078
    • ⏱ 2024-03-23 20:41:46

2.2 Paxos算法

  • 📌 Paxos算法是莱斯利·兰伯特(Leslie Lamport)[插图]于1990年提出的一种基于消息传递且具有高度容错特性的一致性算法,是目前公认的解决分布式一致性问题最有效的算法之一。 ^10-528-783
    • ⏱ 2024-03-23 20:46:35

小结

第3章 Paxos的工程实践

3.1 Chubby

3.2 Hypertable

小结

第4章 ZooKeeper与Paxos

4.1 初识ZooKeeper

4.2 ZooKeeper的ZAB协议

  • 📌 在深入了解ZooKeeper之前,相信很多读者都会认为ZooKeeper就是Paxos算法的一个实现。但事实上,ZooKeeper并没有完全采用Paxos算法,而是使用了一种称为ZooKeeper Atomic Broadcast(ZAB,ZooKeeper原子消息广播协议)的协议作为其数据一致性的核心算法。 ^18-960-1115
    • ⏱ 2024-03-23 21:17:48

小结

第5章 使用ZooKeeper

5.1 部署与运行

5.2 客户端脚本

5.3 Java客户端API使用

5.4 开源客户端

小结

第6章 ZooKeeper的典型应用场景

6.1 典型应用场景及实现

6.2 ZooKeeper在大型分布式系统中的应用

6.3 ZooKeeper在阿里巴巴的实践与应用

小结

第7章 ZooKeeper技术内幕

7.1 系统模型

7.2 序列化与协议

7.3 客户端

7.4 会话

7.5 服务器启动

7.6 Leader选举

7.7 各服务器角色介绍

7.8 请求处理

7.9 数据与存储

小结

第8章 ZooKeeper运维

8.1 配置详解

8.2 四字命令

8.3 JMX

8.4 监控

8.5 构建一个高可用的集群

8.6 日常运维

小结

附录A Windows平台上部署ZooKeeper

附录B 从源代码开始构建

附录C 各发行版本重大更新记录

附录D ZooKeeper源代码阅读指引

读书笔记

本书评论