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

提问者:帅平 问题分类:面试刷题
分布式事务中3pc(三阶段提交协议)的优缺点有哪些?
3 个回答
我怕时间不够
我怕时间不够
3pc分布式事务提交的优点有:
3PC 在 PreCommit 阶段引入了超时机制,允许参与者在没有接收到协调者的最终指令时自行决定中止事务,这减少了协调者成为单点故障的可能性。

3pc分布式事务提交的缺点有:
复杂性:3PC 比 2PC 更复杂,需要更多的消息交换和更多的状态管理。
性能开销:3PC 引入了额外的阶段和网络通信,可能会导致更大的性能开销。
极端情况:即使是 3PC,在某些极端的网络分区或多点故障情况下也可能无法保证事务的正确性。
发布于:3个月前 (01-29) IP属地:四川省
渡不过的奈何桥
渡不过的奈何桥
先解释下3PC(三阶段提交)的流程:
三阶段提交(3PC)是两阶段提交(2PC)的改进版本,它旨在减少在协调者和参与者之间的阻塞时间,同时增加系统在某些故障情况下的容错能力,以下是 3PC 的三个阶段:
CanCommit 阶段
协调者行动: 发送 CanCommit 请求到所有参与者,并等待回应。
参与者行动: 如果参与者可以提交事务,它就返回 Yes,并进入预备状态;如果不能提交,则返回 No。
PreCommit 阶段
协调者行动: 如果所有参与者回答 Yes,协调者发送 PreCommit 请求给所有参与者,并进入 Prepared 阶段;如果有任何参与者回答 No,或者等待超时,协调者发送 abort 请求。
参与者行动: 在收到 PreCommit 请求后,参与者会执行事务操作,写入日志,但不提交,然后响应 ACK,并等待最终指令。如果参与者在这个阶段超时没有收到协调者的消息,它将中止事务。
DoCommit 阶段
协调者行动: 一旦协调者收到所有参与者的 ACK,它会进入 DoCommit 阶段,发送 commit 请求给所有参与者。
参与者行动: 参与者在收到 commit 请求后,提交事务,释放所有事务锁定的资源,并向协调者发送完成消息。
发布于:3个月前 (01-29) IP属地:未知
我来回答