2PC算法、原子广播

二阶段提交(2PC)是一种解决分布式系统中事务原子性和一致性的算法。其执行过程包括确认和提交两个阶段,存在单点故障和同步阻塞等问题。Zookeeper为提高一致性,采用了改进版的2PC进行原子广播,当leader收到半数以上follower的成功反馈,就会执行操作。
摘要由CSDN通过智能技术生成

概述

2PC,是Two-Phase-Commit的缩写,即二阶段提交,主要解决的问题是让基于分布式架构下的所有节点在进行事务处理过程中能够保证原子性和一致性。它的核心思想是“一票否决”。

执行过程

**确认阶段:**协调者收到请求之后将请求转发给每一个参与者,等待参与者反馈。
**提交阶段:**所有的参与者都返回yes,那么协调者就会给参与者发布指令执行这个请求,并协调者会客户端返回成功信号。2PC算法提交阶段图解如图所示。
2PC提交阶段图解
**中止阶段:**如果有一个或者多个参与者返回no,或者如果协调者没有收到参与者的返回信号,也会认为这个参与者返回的是no,那么协调者就会认为这个请求不可执行,那么协调者就会要求所有的参与者删除这个请求的记录 。2PC中止阶段图解如图所示。
2PC算法中止阶段图解

2PC算法的缺点

  • 单点问题:协调者的角色在整个二阶段提交协议中处于核心地位,因此一旦协调者出现问题,那么整个二阶段提交流程将无法运转
  • 同步阻塞:二阶段提交协议存在的最明显也是最大的一个问题就是同步阻塞,限制分布式系统的性能,所有参与事务操作的逻辑都处在堵塞状态。无法进行其他操作
  • 容错性较低:任意一个节点失败都会导致整个事务的失败

Zookeeper中的原子广播

Zookeeper中的原子广播为了保证节点数据的一致性使用2PC算法并对其进行改进

原子广播的过程如同所示:
原子广播过程
**2pc在zookeeper中的改进:**leader收到一半及以上的follower返回成功信号,那么leader就会命令follower执行成功的操作,没有收到半数以上的follower传来的成功信号leader就会命令follower删除刚才的记录。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值