从Paxos到Zookeeper一致性
2018-04-13 16:58:14 49 举报
AI智能生成
《从Paxos到Zookeeper》 知识点思维导图
作者其他创作
大纲/内容
第一章 分布式架构
分布式问题
通信异常
信息同步变慢
网络分区
脑裂
三态
成功
失败
超时
节点故障
传统事务ACID 到 分布式事务CAP/BASE
ACID
Atomicity
Consistency
Isolation
Read Uncommited
Read Committed
Repeatable Read
Serializable
Durabilitiy
CAP
Consistency
各个几点数据一致
Availability
有限时间内+返回结果
Partition Tolerance
网络分区出现时,能保证上面两个能力。
BASE
Basic Availability
损失响应时间、损失功能(降级)
Soft State
允许节点数据的中间状态,允许节点间同步延时
Eventually Consist
时间窗口内,数据存在不一致的情况,但时间窗口到达后,同步完成,所有节点数据一致
分类
因果一致性
Read your write
会话一致性
单调读一致性
第二章 一致性协议
2PC-Two Phase Commit
概念
引入Coordinator与Participant概念,协调者统一协调和管理参与者的事务过程。
过程
阶段一:提交事务请求
事务查询
询问是否可以执行事务提交操作
执行事务准备工作
undo、redo日志
回复yes or no
阶段二:执行事务提交
回复yes
发送提交请求
事务提交
参与者反馈结果
完成事务
有No回复
发送回滚请求
回滚事务
undo日志
反馈回滚结果
中断事务
优点
原理简单,实现方便
缺点
同步阻塞
单点
协调者单点
数据不一致
执行缺乏确认
过于保守
一个失败、超时则全部回滚
3PC
过程
canCommit
preCommit
doCommit
这一步参与者未收到协调者docommit,超时一段时候后会自动docommit
优点
阻塞范围变小
单点故障解决
缺点
数据可能不一致
Paxos
拜占庭将军问题
角色
Proposer
Acceptor
Learner
少数服从多数、角色轮换
补充论文
第三章 Paxos工程实践
Chubby
设计思路
分布式锁服务
小文件存储服务
文件系统讲解
缓存
强一致
会话
选举容灾
hypertable
海量高并发数据库
增删改查、无事务、无关联查询
第四章 Zookeeper 与 Paxos
分布式协调服务、分布式一致性解决方案
基本概念
集群角色
会话
节点
版本
watcher
ACL
ZAB协议
Zookeeper Atomic BroadCast
消息广播
崩溃恢复
数据同步
对比
https://cwiki.apache.org/confluence/display/ZOOKEEPER/Zab+vs.+Paxos
第五章 使用Zookeeper
讲解Zookeeper的API使用以及原生zkClient以及Netflix封装的开源Curator的使用
第六章 ZooKeeper的典型应用场景
数据发布与订阅
配置中心
负载均衡
动态DNS
命名服务
注册中心
分布式协调与通知
MySql复制总线
教育数据中心,db与nosql之间的数据copy的任务协调可以参考
冷热备份方案
系统间通信
心跳检测
进度汇报
系统调度
集群管理
分布式日志收集系统
注册收集器
任务分发
状态汇报
动态分配
在线云主机管理
机器上下线
机器监控
集群选举
分布式锁
互斥锁
共享锁
羊群效应
只watch前一个节点
分布式队列
实现FIFO
分布式 Barrier 屏障
ZooKeeper在大型分布式系统中的应用
Hadoop大型分布式计算框架
YARN 分布式调度框架中 ResourceManager 的单点问题
ResourceManager 脑裂状态--使用Znode 的ACL控制
ResourceManager的状态存储
HBase 分布式存储系统
概念:Google Bit Table 开源实现,BitTable+Chubby,HBase+Zookeeper
系统容错
利用Zookeeper的临时节点特性,来保持RegionServer状态检查。减轻HMaster负担
RootRegion、Region状态管理
分布式Splitlog 、 Replication 管理
Kafka 分布式消息系统
主要元素
Broker
Producer
Consumer
ComsumerGroup
Topic
Partition
OffSet
Broker、Topic注册
生产者、消费者负载均衡
消费者关系、消费组、消息分区 的关系
消息消费进度Offset
ZooKeeper在阿里巴巴的时间与应用
消息中间件 Metamorphosis
生产者负载均衡-轮询发送消息到分区
消费者负载均衡
消息消费点Offset存储
RPC框架Dubbo
组成
Serialize序列化组件
Registry注册中心
Transport 网络传输组件
Monitor监控中心
Canal 基于MySql Binlog 增量订阅和消费组件
CanalSever 主备切换设计
CanalClient HA设计
数据消费位点记录
分布式数据库同步系统 Otter
SEDA 阶段时间驱动架构
Select 数据接入
Extract 数据提取
Transform 数据转换
Load 数据载入
Stage管理
Schedule调度
利用Zookeeper Observer模式来跨机房Zookeeper集群的性能以及可用性
轻量级分布式通用搜索平台:终搜
元数据管理
CenterNode Leader/Follower中心节点架构
索引分区
实时计算引擎 JStorm
组成
Nimbus 中央任务调度器
Supervisor 管理Worker生命周期
Worker task容器
Task 任务真正执行体
Zookeeper 真个系统的协调者
同步心跳
同步任务配置
同步Topology状态
Nimbus调度器选举
Jstorm对Storm优化
减少Zookeeper全量扫描
减少无用Watcher
延长心跳设置
感想:Storm这些细节都不想?不过这仅仅是Jstorm中Zookeeper的一些优化
第七章 Zookeeper 技术内幕
主要通过源码来讲解Zookeeper的各个功能的实现机制
第八章 Zookeeper运维
主要讲解Zookeeper的一些配置、监控、高可用的集群构建 等
附录
主要讲解Zookeeper 在windows环境下的部署、Zookeeper源码构建教程
0 条评论
下一页