07_TCC和2PC有什么区别
大约 1 分钟
TCC和2PC有什么区别
实现机制不同
首先,二者的实现机制不同,2PC使用协调者和参与者的方式来实现分布式事务,而TCC采用分阶段提交的方式。
处理方式不同
处理方式不同,2PC采用预写式日志的方式,在提交和回滚阶段需要协调者和参与者之间进行多次网络通信,整个事务处理过程较为复杂。TCC则只需要在Try、Confirm和Cancel阶段执行相应的业务逻辑。
异常处理不同
2PC需要处理网络、节点故障等异常情况,可能会导致整个事务无法提交或回滚,处理异常情况的复杂度较高。而TCC只需要处理业务异常情况,异常处理相对简单。
适用场景不同
2PC适用于对事务一致性要求较高的场景,例如银行转账等,需要保证数据致性和完整性。而TCC适用于对事务一致性要求不那么高的场景,例如电商库存扣减等,需要保证数据最终一致性即可。
最初TCC的设计是强一致性,基本上一次事务执行完之后,数据是一致的,要么都commit,要么都cancel。
但是其实在实际使用过程中,可能会采用最终一致性的思想,比如commit失败之后,进行异步重试让他尝试成功,而不是立刻cancel