从 Paxos 到 Zookeeper 分布式一致性原理与实际
下载地址:https://pan.baidu.com/s/1Rq7FHUr-NooJ_CSXwG5E4g
扫码上面二维码关注公众号回复 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
·