美文网首页循序渐进学分布式
一致性协议之两阶段提交协议(2PC)

一致性协议之两阶段提交协议(2PC)

作者: 躁动的中年大叔 | 来源:发表于2018-07-28 17:03 被阅读17次

概述

2PC是一种一致性协议,我们设计一致性协议是为了保证分布式系统各个节点的数据一致性。目前绝大部分的关系型数据库都是用2PC,统一事务的提交或回滚。

在分布式系统中,每一个节点都能明确的知道自己在进行事务操作中的结果,成功或者失败。却无法直接获取到其他节点的执行情况。
因此一般会引入一个成为“协调者”的组件来统一协调各个分布式节点(参与者)的执行逻辑,并最终决定是否进行事务提交。2PC正是采用该思想来协调分布式系统。

2PC协议详解

2PC,两阶段提交协议。顾名思义,它将事务的提交分为了两个阶段来进行处理。

阶段一:事务请求阶段

1. 事务询问

协调者向所有参与者发送事务内容,询问是否可以进行事务提交操作,并等待参与者的响应。

2. 事务执行

各参与者执行事务,并记录Undo和Redo信息到事务日志中。

3.事务反馈

各参与者向协调者反馈事务执行的结果。事务执行成功则反馈Yes响应,执行失败则反馈No响应。

阶段二:事务提交阶段

在阶段二中,协调者会根据各参与者的反馈来决定是否进行事务提交。

执行事务提交

如果协调者收到各参与者的反馈都是Yes响应,则执行事务提交

1. 发送Commit请求

协调者向所有参与者发出事务Commit请求

2. 执行事务Commit

参与者收到commit请求后,执行事务提交操作。

3. 反馈结果

各参与者完成事务提交之后,向协调者发送Ack响应.

4. 完成事务

协调者收到各参与者的Ack响应后,结束事务。

中断事务

如果任何一个参与者向协调者反馈了No响应,或者协调者等待时间超时之后没有收到所有参与者的反馈响应,那么就会中断事务

1. 发送Rollback请求

协调者向所有参与者发送Rollback请求

2. 执行事务Rollback

参与者收到Rollback请求后,会根据事务日志中的Undo信息执行事务回滚操作。

3. 反馈结果

各参与者完成事务回滚后,向协调者发送Ack响应。

4. 完成事务Rollback

协调者收到所有参与者反馈的Ack响应后,完成事务回滚。

优缺点

优点:协议简单、易于实现

缺点:同步阻塞、单点问题、会出现脑裂、保守

1. 同步阻塞

执行过程每一个步骤,各个参与者都要等待其他参与者执行完成,期间无法进行任何操作。

2.单点问题

协调者挂了,系统就挂了

3.脑裂问题

在阶段二中,当协调者发出commit请求后,由于网络或者其他原因,一部分参与者收到了commit请求,一部分参与者未收到commit请求,则会出现一部分参与者提交了事务,一部分未提交,因此出现各节点数据不一致,造成“脑裂”。

4. 保守

2PC没有提供完善的容错机制,任何一步失败将会导致整个事务的失败。这样的策略略显保守。

相关文章

  • 两阶段提交协议(2PC)、三阶提交协议(3PC)

    两阶段提交协议(2PC)、三阶提交协议(3PC) 2PC 二阶段提交协议是将事务的提交过程拆分为两个阶段来执行,分...

  • 05 一致性算法

    1 一致性协议概述 两阶段提交 two-phase commit (2PC) 三阶段提交 three-phase ...

  • 分布式事务:2PC、3PC协议

    两阶段提交协议-2PC 两阶段提交协议(2PC):是一种原子承诺协议,一种分布式算法,它协调参与分布式事务的所有应...

  • 2PC和3PC

    2PC 两阶段提交又称2PC,2PC是一个非常经典的强一致、中心化的原子提交协议。 中心化是指协议中有两类节点:一...

  • 分布式事务一致性

    两阶段提交协议 两阶段提交协议(Two-phase Commit,2PC)经常被用来实现分布式事务。一般分为协调器...

  • 分布式事务解决方案-Seata实现2PC方案

    1 什么是2PC ​ 2PC即两阶段提交协议,是将整个事务流程分为两个阶段,准备阶段(Prepare phase)...

  • 分布式事务解决方案之2PC(一)

    2PC即两阶段提交协议,是将整个事务流程分为两个阶段,准备阶段(Prepare phase)、提交阶段(commi...

  • 分布式事务

    基于XA协议的两阶段提交方案(2pc) XA 规范的基础是两阶段提交协议:第一阶段是表决阶段,所有参与者都将本事务...

  • 分布式事务常见协议-上

    两阶段提交协议 Two-Phase Commit,2PC,wiki[https://en.wikipedia.or...

  • 一致性协议--3PC提交协议

    上一篇 <<<一致性协议--2PC提交协议[https://www.jianshu.com/p/0f8515f0f...

网友评论

    本文标题:一致性协议之两阶段提交协议(2PC)

    本文链接:https://www.haomeiwen.com/subject/vivomftx.html