51.Seata-TCC模式
前面两种XA模式和TA模式,都是用了加锁。
TCC模式则不会加锁,性能更好。
TCC模式跟AT模式非常相似,一阶段都是独立的事务,操作完直接提交,无需加锁。
不同的是二阶段TCC通过人工编码来实现数据恢复。
需要实现三个方法
Try: 资源的监测和预留(预留是基于冻结来实现的)
Confirm: 完成资源操作业务,要求Try成功,Confirm一定要能成功。
Cancel: 预留资源释放,可以理解为try的反向操作。
举例:一个扣减用户余额的业务,假设账户原来有100元,需要扣减30元。
AT模式与TCC模式区别
AT模式下,需要添加全局锁来实现事务隔离。但是在TCC模式下是不需要隔离的,因为每个事务都会冻结一部分,每个事务冻结的是不同部分,自己操作自己冻结的部分,不会相互影响,自然就是实现了事务隔离。