从Paxos到Zookeeper 分布式一致性原理与实践

从Paxos到Zookeeper 分布式一致性原理与实践

下载地址: https://pan.baidu.com/s/1Rq7FHUr-NooJ_CSXwG5E4g

扫码下面二维码关注公众号回复100015 获取分享码

image.png

本书目录结构如下:

一、概念

· 二、一致性协调

· 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

·

你可能感兴趣的:(zookeeper)