分布式事务 3PC

简介: 3PC(Three-Phase Commit)是一种增强型的2PC(Two-Phase Commit)协议,用于解决2PC协议存在的可靠性问题和性能问题。3PC协议将2PC协议的两个阶段分为了三个阶段,同时引入了超时机制,从而提高了协议的可靠性和容错性。

tip:作为程序员一定学习编程之道,一定要对代码的编写有追求,不能实现就完事了。我们应该让自己写的代码更加优雅,即使这会费时费力。

一、简介

3PC(Three-Phase Commit)是一种增强型的2PC(Two-Phase Commit)协议,用于解决2PC协议存在的可靠性问题和性能问题。3PC协议将2PC协议的两个阶段分为了三个阶段,同时引入了超时机制,从而提高了协议的可靠性和容错性。

二、运行流程

3PC协议的三个阶段分别为:

  1. CanCommit 阶段:事务协调者向所有参与者发起 CanCommit 请求,询问参与者是否可以提交事务。参与者接收到 CanCommit 请求后,会执行本地事务,并将事务执行结果和准备状态(Yes/No)发送给事务协调者。

  2. PreCommit 阶段:事务协调者接收到所有参与者的准备状态后,会根据参与者的响应情况决定是否提交或回滚事务。如果所有参与者都准备好提交事务,则事务协调者发送 PreCommit 命令,否则发送 Abort 命令。参与者接收到 PreCommit 命令后,会执行相应的操作,并将执行结果发送给事务协调者。

  3. DoCommit 阶段:事务协调者接收到所有参与者的执行结果后,会发送 DoCommit 命令,要求所有参与者提交事务。参与者接收到 DoCommit 命令后,会执行相应的操作,并将执行结果发送给事务协调者。

三、 3PC协议相比于2PC协议

3PC协议相比于2PC协议,具有以下优点:

  1. 引入超时机制:3PC协议引入了超时机制,可以在一定时间内等待参与者的响应,从而避免了2PC协议中可能出现的阻塞问题。

  2. 减少阻塞时间:3PC协议将2PC协议的两个阶段分为了三个阶段,可以减少协议执行期间参与者的阻塞时间,从而提高了系统的性能。

  3. 提高可靠性:3PC协议在 CanCommit 阶段引入了准备状态,可以更好地判断参与者是否准备好提交事务,从而提高了协议的可靠性和容错性。
    需要注意的是,3PC协议虽然提高了2PC协议的可靠性和性能,但仍然存在一些问题,例如可能出现“半提交”问题、不支持跨多个数据中心的场景等。因此,在实际应用中,需要根据具体情况选择合适的分布式事务解决方案。

四、它应用的中间件

3PC协议可以应用于各种分布式中间件中,例如:

  1. 分布式事务中间件:如阿里巴巴的Seata、京东的TCC-Transaction等。

  2. 消息中间件:如Apache Kafka、RabbitMQ等。

  3. 分布式缓存中间件:如Redis Cluster、Tair等。

  4. 分布式数据库中间件:如MySQL Cluster、TiDB等。

    总之,3PC协议可以应用于各种需要保证分布式事务一致性和可靠性的中间件中。

五、它应用的业务

3PC协议可以应用于分布式系统中的各种场景,例如:

  1. 电子商务系统:在电子商务系统中,可能涉及到多个数据库的操作,如下单、支付、物流等。使用3PC协议可以保证这些操作的一致性和可靠性。

  2. 金融系统:在金融系统中,可能需要进行跨行转账等操作,使用3PC协议可以保证这些操作的安全性和可靠性。

  3. 游戏系统:在游戏系统中,可能需要进行分布式事务操作,如多个玩家同时购买某个虚拟物品等。使用3PC协议可以保证这些操作的一致性和可靠性。

  4. 云计算系统:在云计算系统中,可能需要进行跨数据中心的操作,如多个数据中心之间的数据同步等。使用3PC协议可以保证这些操作的一致性和可靠性。

    总之,3PC协议可以应用于各种需要保证分布式事务一致性和可靠性的场景。

目录
相关文章
|
Java 关系型数据库 MySQL
面试被问分布式事务(2PC、3PC、TCC),这样解释没毛病!
面试被问分布式事务(2PC、3PC、TCC),这样解释没毛病!
506 0
面试被问分布式事务(2PC、3PC、TCC),这样解释没毛病!
|
2月前
|
分布式计算 算法
分布式系统设计之共识算法—2PC、3PC、 Paxos
分布式系统设计之共识算法—2PC、3PC、 Paxos
42 1
|
8月前
|
算法
分布式系统中的那些一致性(CAP、BASE、2PC、3PC、Paxos、ZAB、Raft)
本文介绍 CAP、BASE理论的正确理解、Paxos 算法如何保证一致性及死循环问题、ZAB 协议中原子广播及崩溃恢复以及 Raft 算法的动态演示。
61 0
|
3月前
|
存储 消息中间件 关系型数据库
解密分布式事务:CAP理论、BASE理论、两阶段提交(2PC)、三阶段提交(3PC)、补偿事务(TCC)、MQ事务消息、最大努力通知
解密分布式事务:CAP理论、BASE理论、两阶段提交(2PC)、三阶段提交(3PC)、补偿事务(TCC)、MQ事务消息、最大努力通知
|
8月前
|
算法 Oracle 关系型数据库
【分布式】分布式事务基础概念(2PC,3PC,TCC)
【分布式】分布式事务基础概念(2PC,3PC,TCC)
302 0
|
10月前
|
消息中间件 算法 程序员
分布式事务 2PC
分布式事务是指跨越多个计算机节点的事务,涉及到多个数据库或其他资源的访问和更新。在分布式事务中,由于数据分布在不同的节点上,因此需要采用一些特殊的技术来保证事务的一致性和可靠性,其中最常用的技术之一就是两阶段提交(Two-Phase Commit,2PC)。
97 0
分布式事务 2PC
|
11月前
【JavaP6大纲】分布式事务篇:两阶段提交(2PC)
【JavaP6大纲】分布式事务篇:两阶段提交(2PC)
|
11月前
【JavaP6大纲】分布式事务篇:三阶段提交(3PC)
【JavaP6大纲】分布式事务篇:三阶段提交(3PC)
|
消息中间件 存储 监控
七种常见分布式事务详解(2PC、3PC、TCC、Saga、本地事务表、MQ事务消息、最大努力通知)
七种常见分布式事务详解(2PC、3PC、TCC、Saga、本地事务表、MQ事务消息、最大努力通知)
784 0
|
分布式计算 算法
分布式系统设计之共识算法—2PC、3PC、 Paxos
分布式系统设计之共识算法—2PC、3PC、 Paxos

热门文章

最新文章