阿里微服务组件seata中at模式和tcc模式的比较

AT模式和TCC模式是Seata中两种常用的分布式事务模式,它们有一些区别和特点。

AT模式(Automatic Traction):

  • 自动化:AT模式通过代理数据库驱动或ORM框架来拦截和管理事务操作,在应用层面自动完成事务的提交和回滚。
  • 强一致性:AT模式遵循ACID原则,保证数据的强一致性。在事务提交之前,会先进行预留资源(锁定),并在全部业务确认无误后才会真正提交事务,否则会回滚。
  • 透明性:AT模式对应用代码的侵入性较低,无需显式编写事务管理相关的代码。
  • 跨库事务支持:AT模式支持跨多个数据库的事务操作,可以在分布式系统中处理分布式事务。
  • 高性能:AT模式通过减少锁的范围、合理利用数据库的乐观锁等方式来提高性能,并具备良好的水平扩展性。

TCC模式(Try-Confirm-Cancel):

  • 三阶段提交:TCC模式通过"Try"、"Confirm"和"Cancel"三个阶段来完成事务操作。首先尝试执行业务逻辑并预留资源,然后确认并真正执行业务,最后根据需要撤销之前的预留资源。
  • 柔性事务:TCC模式通过编程实现柔性事务,将事务控制逻辑集成到业务代码中。在Try阶段执行检查和预处理操作,而在Confirm和Cancel阶段根据业务逻辑选择提交或回滚事务。
  • 异步补偿:TCC模式支持异步执行Confirm和Cancel阶段的操作,提高响应速度和系统吞吐量,减少等待远程调用造成的资源占用。
  • 可扩展性:TCC模式支持跨多个服务的分布式事务,处理高并发和大规模的事务操作。
  • 高可靠性:TCC模式通过状态记录和补偿机制保证事务可靠性,在异常或故障时进行回滚或恢复。

总体而言,AT模式注重自动化、强一致性和性能优化,适用于对数据强一致性要求较高的场景。而TCC模式注重柔性事务、异步补偿和可扩展性,适用于需要灵活控制事务操作的场景。选择使用哪种模式取决于具体的业务需求和系统架构。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值