码迷,mamicode.com
首页 > 其他好文 > 详细

Zookeeper 一致性协议

时间:2021-02-01 12:36:44      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:恢复   mit   commit   删除   优点   两阶段   个数   链接   png   

  • 两阶段提交 two-phase commit (2PC)
  • 三阶段提交 three-phase commit (3PC)
  • Paxos 算法
  • ZAB 算法

2PC

两阶段提交,强一致性算法。常用在分布式数据库中,如分布式事务(tcc)。
undo 记录原始数据的样子,事务失败了恢复,成功了记入 redo 日志。
比如把增加数据库表字段 A 的 SQL 提交给 DBA,DBA 不会执行,需要把删除 A 字段的 SQL 也提交给 DBA 才行。

技术图片

第一阶段所有数据库源都返回 ok 了,在执行第二阶段,提交。

优点:原理简单、实现方便
缺点:同步阻塞、单点故障、数据不一致(commit 时有一个数据库的链接断了)、容错机制不完善
大多使用改善过的 2PC,有事务补偿。

3PC

技术图片

  • 与2PC区别:
    • 第二阶段才写undo和redo事务日志
    • 第三阶段协调者出现异常或网络超时参与者也会commit
  • 优点:
    • 改善同步阻塞
    • 改善单点故障
  • 缺点:
    • 同步阻塞
    • 单点故障
    • 数据不一致
    • 容错机制不完善

因为有这么多问题,3PC 用的并不多。

Paxos 算法

  • 少数服从多数
  • 角色轮换避免单点故障

技术图片

Zookeeper 一致性协议

标签:恢复   mit   commit   删除   优点   两阶段   个数   链接   png   

原文地址:https://www.cnblogs.com/xch-jiang/p/14345190.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!