阅读笔记(六)共识算法2PC

一. 前言

  本文记录2pc算法的一些论文、博客的精华内容。

二. 共识算法

  根据CAP理论,当网络发生分隔的时候,如果保持高可用性,则会损失一致性;反之亦然。为了实现一致性或者最终一致性,必须要实现分隔后可能不同的数据同步,我们称之为共识算法。共识算法主要应用场景包括:

  1. 决定是否提交操作存入数据库
  2. 同步时钟
  3. 是否同意进入分布式算法下一阶段(常用于复制状态机中)
  4. 选举领导者节点用于更高层的协议处理

  对于一个共识算法,最重要的是以下三个特性:

  1. 达成承诺(Agreement):所有的节点会保持一个相同的值
  2. 有效性(Validity):决定采取的值必须是由某个节点提出的
  3. 终结性(Termination):所有节点均会做出决定

二. 2PC(Two-Phase Commit)

  2PC(Two-Phase Commit), 即二阶段提交,是一种最简单的共识算法,也非常易于理解。主要包括以下两阶段:

  1. 组织者向所有参与者建立连接,并给出一个建议的值并收集他们的回复
  2. 如果所有人同意,则再次和所有参与者沟通并让他们知道。否则告诉所有参与者取消该共识。

  下图所示为二阶段的1,2阶段示意图
在这里插入图片描述

在这里插入图片描述

  考虑到组织者也可能会是出问题的那个节点,因此很多时候我们需要采用哨兵模式,增加一个观察节点,当组织者出问题时代替进行共识算法的通信。

在这里插入图片描述

在这里插入图片描述

四. 参考文献

【1】https://www.the-paper-trail.org/post/2008-11-27-consensus-protocols-two-phase-commit/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ch_ty

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值