Tcc三段提交(两阶段提交+补偿事务)
时间: 2023-05-25 22:06:30 浏览: 369
两阶段提交
TCC(Try-Confirm-Cancel)是一种分布式事务管理机制,它采用“两阶段提交”和“补偿事务”两种方式,确保分布式事务的原子性和一致性。
TCC的核心思想是将一个复杂的事务拆分成三个步骤:试图执行(Try)、确认执行(Confirm)和取消执行(Cancel)。这三个步骤分别对应“两阶段提交”(2PC)中的准备阶段、提交阶段和回滚阶段。
TCC有以下三个步骤:
1.试图执行(Try):首先,在事务发起方(服务A)执行操作前,会向参与方(服务B)发送请求,询问其是否能够执行当前操作。如果参与方确认可以执行,则进行预留资源,记录操作信息;如果参与方回应拒绝,则整个事务将会回滚。
2.确认执行(Confirm):当所有参与方都能够执行操作时,事务发起方会通知各个参与方提交执行请求,对应2PC中的“提交事务”阶段。提交完成后,事务进入“已提交”状态。
3.取消执行(Cancel):如果有任何一个参与方在“试图执行”或“确认执行”阶段发生异常,或者在“确认执行”之前事务发起方主动取消了事务,那么事务将进入“已撤销”状态。在“已撤销”状态下,事务发起方可以向各个参与方发送请求进行事务回滚操作。
TCC采用“补偿事务”来确保一致性,即当某个参与方在Confirm阶段发生异常,无法提交时,其他参与方会执行相反的操作,将之前预留的资源释放掉,从而保证整个事务的原子性和一致性。
总的来说,TCC机制是一种高可靠、高性能的分布式事务管理机制,适用于对事务数据的正确性和一致性要求较高的场景。
阅读全文