2016书单总结--从Paxos到Zookeeper分布式一致性原理与实践--原理篇
来源:互联网 发布:中国真实gdp季度数据 编辑:程序博客网 时间:2024/06/05 21:51
2016书单总结–从Paxos到Zookeeper分布式一致性原理与实践–原理篇
- 集中式–由一台或者多台计算机组成中心节点,由中心节点进行数据存储和业务单元处理
- 结构简单
- 去IOE(IBM小型机 Oracle数据库 Emc存储设备)
- 分布式–由一个软件或者硬件分布在不同的网络计算机上,彼此之间通过消息进行通信和协调
- 分布式–空间上随意分布
- 对等性–无主从之分
- 并发性–并发计算/存储
- 缺乏系统时钟
- 故障总是会发生
- 通信异常
- 网络分区–脑裂(局部组成小网络)
- 三态–响应分为成功、失败、超时
- 节点故障
- 事务(对数据的访问与更新处于一个执行逻辑单元)处理与数据一致性
分布式事务–事务的参与者,支持事务的服务器、资源服务器以及事务管理器分别位于分布式系统的不同节点上- ACID
- A(atomicity)–原子性(事务要么全部执行成功,要么全部执行失败)
- C(consistency)–一致性(事务执行使数据库从一个一致性状态转为另一个一致性状态)
- I(isolation)–隔离性(并发环境中,事务之间的操作是相互隔离的)
- 未授权读/读未提交(ReadUncommited)–存在脏数据
- 授权读取(ReadCommited)–3个事务操作/存在不可重复读取
- 可重复读(RepeatableRead)–同一事务中,可重复读/存在幻读(同样的事务操作,前后时间段读取数据不一致)
- 串行化(Serializable)–事务串行执行
- D(durability)–持久性(事务一旦提交,对数据库的修改就是永久性的)
- CAP–一个分布式系统不可能同时满足CAP,最多只能满足其中两项
- C(consistency/一致性)–数据在多个副本之间是否能够保持一致
- A(availability/可用性)–服务在指定时间内返回结果
- P(partition tolerance/分区容错性)–在遇到网络分区故障时,需要保障对外提供一致性和可用性的服务
- BASE–对CAP的一致性与可用性进行权衡的结果
- BA(basic available/基本可用)–遭遇故障时,允许损失部分可用性
- S(soft state/弱状态)–允许数据出现中间状态
- E(eventually consistent/最终一致性)–所有数据副本,经过一段时间同步,最终达到数据的一致性
- 因果一致性(Causal)
- 读己之所写(Read your writes)
- 会话一致性(Session)
- 单调读一致性(Monotomic read)
- 单调写一致性(Monotonic write)
- ACID
- 一致性协议
协调者(coordinator)负责调度参与者(participant)的行为,并最终决定是否要把参与者进行的事务进行提交- 2PC(two phase commit/两阶段提交)–投票与执行
- 提交事务请求(投票)–协调者发送事务请求,参与者执行,返回结果
- 执行事务提交(执行)–协调者根据参与者返回的信息,决定是否提交事务或者回滚事务
- 优缺点
- 优点–原理简单,实现方便
- 缺点–参与者同步阻塞、协调者单点问题、参与者数据不一致、协调者太过保守
- 3PC(three-phase-commit/三阶段提交)–降低参与者阻塞的范围
- CanCommit–协调者询问参与者是否可进行事务提交,参与者根据情况评估后返回结果
- PreCommit–协调者根据参与者返回情况,发送执行事务请求或者中断事务请求,等待参与者结果
- doCommit–协调者根据参与者执行情况,发送提交事务或者回滚事务请求
- 优缺点
- 优点–CanCommit可降低参与者阻塞的时间
- 缺点–参与者会出现数据的不一致
- Paxos–分布式系统容错性的一致性算法
- 保障最终有一个提案被选定,当提案被选定后,进程最终也能获取到被选定的提案
- proposer/acceptor/learner
- 2PC(two phase commit/两阶段提交)–投票与执行
- ZAB–Zookeeper Atomic Broadcast协议–支持崩溃恢复的原子广播协议
- client–>leader–proposal<–>follower1
<–>follower2
<–>follower3
<–>follower4
(过半)commit<–>follower1
<–>follower2
<–>follower3
<–>follower4 - 消息广播–原子广播协议,类似于二阶段提交
- 崩溃恢复–选出新的leader
- Leader(为客户端提供读和写服务)
- Follower(提供读服务/参与过半写成功策略/参与选举Leader)
- Observer(提供读服务/不参与过半写成功策略/不参与选择Leader)
- client–>leader–proposal<–>follower1
- 示例代码位于– https://github.com/undergrowthlinear/2016MyBookSummary.git
- 使用curator创建模拟zookeeper服务集群在com.undergrowth.zookeeper.paxos.test.CuratorZookeeperServerTest代码示例
- 使用curator操作zookeeper在com.undergrowth.zookeeper.paxos.test.CuratorLearnTest代码演示
- 包括创建节点、删除节点、获取节点数据、设置节点数据、监听节点数据改变、监听子节点改变
- 分布式计数器、分布式锁
- 使用zk操作zookeeper在com.undergrowth.zookeeper.paxos.test.zk.ZooKeeperOperator代码演示
0 0
- 2016书单总结--从Paxos到Zookeeper分布式一致性原理与实践--原理篇
- 从PAXOS到Zookeeper分布式一致性原理与实践
- 从Paxos到Zookeeper分布式一致性原理与实践 -笔记
- 《从PAXOS到ZOOKEEPER分布式一致性原理与实践》pdf
- 书籍-从Paxos到Zookeeper分布式一致性原理与实践
- 《从Paxos到zookeeper分布式一致性原理与实践》笔记
- <从PAXOS到ZOOKEEPER分布式一致性原理与实践>读书笔记-zookeeper分布式锁
- <从PAXOS到ZOOKEEPER分布式一致性原理与实践>读书笔记-paxos算法
- 从PAXOS到ZOOKEEPER分布式一致性原理与实践--Paxos算法
- <从PAXOS到ZOOKEEPER分布式一致性原理与实践>读书笔记-第5章zookeeper安装
- <从PAXOS到ZOOKEEPER分布式一致性原理与实践>读书笔记-第5章zookeeper使用
- <从PAXOS到ZOOKEEPER分布式一致性原理与实践>读书笔记-zookeeper全局唯一id生成
- 读《从Paxos到Zookeeper 分布式一致性原理与实践》笔记之Zookeeper介绍
- 读《从Paxos到Zookeeper 分布式一致性原理与实践》笔记之数据与存储
- <从PAXOS到ZOOKEEPER分布式一致性原理与实践>读书笔记-ZAB协议
- 读《从Paxos到Zookeeper 分布式一致性原理与实践》笔记之系统模型
- 读《从Paxos到Zookeeper 分布式一致性原理与实践》笔记之通信协议
- 读《从Paxos到Zookeeper 分布式一致性原理与实践》笔记之客户端
- LightOJ 1077 How Many Points? (变种gcd)
- 记一次简单的逆向
- 怎样把未分配的磁盘空间合并到已分配的磁盘
- 设计模式分类
- 问题四十七:怎么用ray tracing画superellipsoid (2)
- 2016书单总结--从Paxos到Zookeeper分布式一致性原理与实践--原理篇
- 包,jar存档文件和部署
- (1)深坑之soe文件无法生成
- Android之---Activity的四种启动模式
- IBM V3500存储更换控制器一例
- 重拾java基础(二十二):集合、IO流总结附带Excel资料
- 求第n个斐波那契数(非递归与递归方法实现)
- 关于SSH中异常处理的冲突引起的无限循环-Infinite recursion detected: [……]-问题处理
- android 窗口类型分析