从Paxos到Zookeeper 分布式一致性原理与实践
下载地址: pan.baidu.com/s/1Rq7FHUr-…
扫码下面二维码关注公众号回复100015 获取分享码
本书目录结构如下:
一、概念 二、一致性协调 2.1 2PC (Two-Phase Commit) 前提 基本算法 算法示意 缺点 2.2 3PC (Three-Phase Commit) 基本算法 1.CanCommit阶段 2.PreCommit阶段 3.DoCommit阶段 算法示意 2PC和3PC区别 优缺点 2.3 Paxos(解决单点问题) Paxos算法原理 Paxos算法过程 三、Zookeeper 3.1、初识Zookeeper 3.1.1 zookeeper可以保证如下分布式一致性特性 3.1.2 zookeeper的四个设计目标 3.1.3 zookeeper的基本概念 1、集群角色 2、会话 3、数据节点 4、版本 5、Watcher 6、ACL 3.2、ZAB 3.2.1、ZAB协议 3.2.2、ZAB两种基本的模式:崩溃恢复和消息广播。 崩溃恢复 消息广播 基本特性 数据同步 3.2.3、ZAB协议原理 3.3、ZAB与Paxos的联系和区别 四、使用Zookeeper 4.1、部署与运行 4.2、客户端脚本 4.3、Java客户端API使用 4.4、开源客户端 4.4.1、ZkClient 4.1.1 添加依赖 4.4.2、Curator客户端 4.4.2.1 添加依赖 4.4.2.2 创建会话 4.4.2.3 创建节点 4.4.2.7 异步接口 4.2.8 节点监听 4.2.9 子节点监听 4.2.10 Master选举 4.2.11 分布式锁 4.4.2.12 分布式计数器 DistributedAtomicInteger 4.4.2.13 分布式Barrier 4.4.3、Curator工具类 4.4.3.1 ZKPaths 4.4.3.2 EnsurePath 五、Zookeeper应用场景 5.1、典型应用场景及实现 5.1.1 数据发布/订阅 5.1.2 负载均衡 5.1.3 命名服务 5.1.4 分布式协调/通知 5.1.5 集群管理 5.1.6 Master选举 5.1.7 分布式锁 5.1.8 分布式队列 5.2、zk在大型分布式系统中的应用 5.2.1 Hadoop 5.2.1.1 YARN 5.2.1.2 ResourceManager HA 5.2.1.3 主备切换 5.2.1.4 隔离(Fencing) 5.2.1.5 ResourceManager状态存储 5.2.2 HBase 5.2.3 Kafka 5.2.3.1 Broker注册 5.2.3.2 Topic注册 5.2.3.3 生产者负载均衡 5.2.3.4 消费者负载均衡 5.2.3.5 消费分区与消费者的关系 5.2.3.6 消息消费进度Offset记录 5.2.3.7 消费者注册 5.2.3.8 负载均衡 《从Paxos到zookeeper分布式一致性原理与实践》笔记 第6章ZooKeeper技术内幕 6.1 系统模型 6.1.1 数据模型 6.1.2 节点特性 6.1.3 版本——保证分布式数据原子性操作 6.1.4 Watcher——数据变更的通知 6.1.5 ACL——保障数据的安全 6.2 序列化与协议 6.2.1 Jute介绍 6.2.2 使用Jute进行序列化 6.2.3 深入Jute 6.2.4 通信协议 6.2.4.1 请求协议 6.2.4.2 响应协议 6.2.5 stat状态说明 6.3 客户端 6.3.1 一次会话的创建过程 6.3.2 服务器地址列表 6.3.3 ClientCnxn:网络I/O 6.4 会话 6.4.1 会话状态 6.4.2 会话创建 6.4.3 会话管理 6.4.4 会话清理 6.4.5 重连 6.4.5.1 重连状态(CONNECTED & EXPIRED) 6.4.5.2 重连异常: CONNECTION_LOSS(连接断开)和SESSION_EXPIRED(会话过期) 6.5 服务器启动 6.5.1 单机版服务器启动 6.5.1.1 单机版服务器启动 - 预启动 6.5.1.2 单机版服务器启动 - 初始化 6.5.2 集群版服务器启动 6.5.2.1 集群版服务器启动 - 预启动 6.5.2.2 集群版服务器启动 - 初始化 6.6 Leader选举 6.6.1 Leader选举概述 6.6.1.1 服务器启动时期的Leader选举 6.6.1.2 服务器运行时期的Leader选举 6.6.2 Leader选举的算法分析 6.6.2.1 术语解释 6.6.2.2 进入leader选举 6.6.3 Leader选举的实现细节 6.7 各服务器角色介绍 6.7.1 Leader 6.7.1.1 请求处理链 6.7.1.2 LearnerHandler 6.7.2 Follower 6.7.3 Observer 6.7.4 集群间消息通信 6.8 请求处理 6.8.1 会话创建请求 6.8.1.1 请求接收 6.8.1.2 会话创建 6.8.1.3 预处理 6.8.1.4 事务处理 6.8.1.5 事务应用 6.8.1.6 会话响应 6.8.2 SetData请求 6.8.3 事务请求转发 6.8.4 GetData请求 6.9 数据与存储 6.9.1 内存数据 6.9.2 事务日志 6.9.2.1 文件存储 6.9.2.2 日志格式 6.9.2.3 日志写入 6.9.2.4 日志截断 6.9.3 snapshot——数据快照 6.9.3.1 文件存储 6.9.3.2 数据快照 6.9.4 初始化 6.9.4.1 初始化流程 6.9.5 数据同步 七、Zookeeper运维 7.1 配置参数 7.1 2四字命令 reference