适用场景:

适用于具有强隔离性,严格一致性要求,也适用执行时间比较短的业务。

方案优缺点

优点:

1)在应用层实现具体逻辑,锁定资源的粒度小,不会锁定所有资源,性能比较高

2)Confirm阶段和Cancel阶段的方法具备幂等性,能够保证分布式执行完的数据一致性。

3)TCC分布式事务解决方案由主业务发起,无论主业务还是分支事务都能部署为集群模式,解决XA规范的单点故障

缺点:

代码需要耦合到业务中,每个分支都需要拆分为Try,Confirm和Cancel

存在问题:

1.空回滚问题

原因:分支事务所在的服务器宕机或者网络原因等,分支事务调用失败,没有执行Try阶段方法。当恢复调用,TcC执行回滚操作,如果Cancel无法处理,就会出现回滚问题。

解决:创建一个全局事务记录,并生成一个全局唯一的事务ID,另外创建分支事务记录,记录分支事务执行状态。

2.幂等问题

原因:由于网络等原因,导致分支事务调用失败,Tcc引入重试机制,可能导致数据一致性问题。

解决:在分支事务记录中增加事务的执行状态,每次执行分支事务,查询confirm和Cancel阶段的执行状态,判断是否执行。

3.悬挂问题

原因:在调用分支事务的时候,RPC调用超时重试,事务管理器通知对应资源管理器经回滚事务,但是事务回滚后,请求到达执行Try阶段方法,导致资源无法释放。

解决:创建分支事务记录,查询如果执行过Confirm或Cancel就不在执行。

最新文章

  1. node-sass 安装失败的解决措施
  2. CentOS安装MySQL-5.6.10+安全配置
  3. 网购vs实体店购物 [20161226]
  4. 基于MFC的单文档,多文档,对话框应用程序
  5. RabbitMQ使用相关笔记
  6. 使用fastcgi_finish_request提高页面响应速度
  7. PHP之分页类
  8. Codeforces Round #375 (Div. 2) C. Polycarp at the Radio 贪心
  9. PHP学习笔记(五)
  10. java--文件过滤器和简单系统交互
  11. Qt 4.6: A Quick Start to Qt Designer
  12. python正则表达式--findall、finditer方法
  13. 四、docker compose
  14. Cocos2d-x中文显示乱码
  15. git中设置http代理和取消http代理
  16. C# 进程的挂起与恢复
  17. Javascript中的反射机制(五)
  18. 05 面向对象:构造方法&static&继承&方法 &final
  19. 单元测试工具NUnit的使用
  20. QQ网页链接打开本地QQ.exe原理

热门文章

  1. 学习操作系统P4 理解并发程序执行 (Peterson算法、模型检验与软件自动化工具)
  2. selenium用executeAsyncScript执行异步脚本调用callback使用方法
  3. go 下的查询数据库的框架 ORM框架:访问mysql数据库
  4. Iperf参数详解
  5. Angular JS入门 (一)事件监听(二)多控制器思想与模块化编程(三)路由router
  6. 使用Telnet伪造邮件发送
  7. ENGG1310 Electricity and electronics P1.2 Electronic Communication
  8. Win11 win10系统分区时出现defrag事件怎么解决?
  9. react native 状态栏和安全区域的使用
  10. 19.内容提供者ContentProvider