赞
踩
1.TCC事务其实是try-confirm-cancel的简称,将事务的步骤分为三步,属于柔性事务,因为2PC同步阻塞的缘故,就产生了效率高的TCC.
2.TCC可以解决跨库的数据一致性问题,常用于,电商库存扣减业务
3.补偿性事务
在2PC中,资源会被一直的上锁,但是在TCC中不会一直上锁,TCC会预扣所需的资源,如果try过程成功,就完成扣减资源的过程,但是如果失败,就会通过事务日志,将预扣的资源补偿回去,达到最终一致的效果。
4.2PC和TCC的区别
5.注意事项
5.1允许空回滚
在TCC事务的过程中,如果出现网络波动,导致try请求的包丢失,则会造成超时异常,但是就算这样,TCC仍然会通过事务日志回滚到事务执行之前
5.2 防悬挂设置
在高并发请求中,网络拥挤等场景,都会造成try请求操作长时间未到达数据库,所以,会执行而简短的rollback操作,但是就在执行了rollback之后,try请求到达数据库,事务管理器收到了响应,造成了 rollback操作比try请求先执行的事情,所以,在执行 rollback操作之后要拒绝一切try操作。
5.3 幂等控制
无论是网络数据包重传,还是异常事务的补偿执行,都会导致TCC服务的Try、Confirm或者Cancel操作被重复执行;用户在实现TCC服务时,需要考虑幂等控制,即Try、Confirm、Cancel 执行次和执行多次的业务结果是一样的;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。