分布式事务中2pc(两阶段提交协议)的优缺点有哪些?

提问者:帅平 问题分类:面试刷题
分布式事务中2pc(两阶段提交协议)的优缺点有哪些?

 您阅读本篇文章共花了: 

2 个回答
蔓延的小思念
蔓延的小思念
2pc分布式事务提交的优点有:
原子性保证:2PC 协议可以保证所有参与者要么全部提交成功,要么全部失败回滚,从而实现跨多个分布式节点的事务的原子性。
简单直观:2PC 的设计思路简单,逻辑清晰,容易理解,这使得它在很多传统的数据库和分布式系统中得到了广泛的应用,比如 MySQL 从 5.5 版本开始支持。

2pc分布式事务提交的缺点有:
同步阻塞:在 2PC 的第一阶段,所有参与者在响应协调者的准备请求后,必须等待最终的提交或回滚指令。这期间,所有参与者都处于阻塞状态,无法进行其他操作,导致资源锁定时间较长,在高并发场景下很明显不太适用。
单点故障:如果协调者在第二阶段崩溃,参与者可能会无限期地等待指令,因为它们不知道应该提交还是回滚。这使得整个系统容易受到单点故障的影响。
数据不一致:如果在第二阶段中协调者向某些参与者发送了提交指令,而其他参与者因为网络问题没有收到指令,那么这些没有收到指令的参与者可能会选择回滚,导致数据不一致。
复杂的恢复机制:当系统崩溃后,恢复过程非常复杂,所有参与者必须保持足够的信息以便在系统恢复后能够继续完成 2PC 协议。
发布于:3个月前 (01-29) IP属地:未知
天然纯勋勋
天然纯勋勋
先解释下2PC提交的流程:
两阶段提交是一种强一致性事务协议,它分为准备阶段和提交阶段。
在准备阶段,协调者节点询问所有参与者是否准备好提交事务,如果所有参与者都答应准备好了,那么在提交阶段,协调者会通知所有参与者提交事务。

具体流程图如下:
发布于:3个月前 (01-29) IP属地:未知
我来回答