当前位置: 首页 > news >正文

中间件-seata

分布式事务seata

  • 角色组成
  • 角色指责
  • AT模式
  • TCC模式

角色组成

在这里插入图片描述

  1. TC:事务协调者,维护全局和分支事务的状态,驱动全局事务提交或回滚。
  2. TM:事务管理者,定义全局事务的范围:开始全局事务、提交或回滚全局事务。
  3. RM:资源管理器,管理分支事务处理的资源,与TC交谈以注册分支事务和报告分支事务的状态,并驱动分支事务提交或回滚。
    TC为单独部署的Server服务端,TM和RM为嵌入到应用中的Client客户端。

角色指责

  1. TM请求TC开启一个全局事务。TC会生成一个XID作为该全局事务的编号。XID会在微服务的调用链路中传播,保证将多个微服务的子事务关联在一起。
  2. RM请求TC将本地事务注册为全局事务的分支事务,通过全局事务的XID进行关联。
  3. TM通知TC告诉XID对应的全局事务是进行提交还是回滚。
  4. TC驱动RM们将XID对应的自己的本地事务进行提交还是回滚。

AT模式

两阶段提交:
一阶段:生成undolog(前置镜像、后置镜像),拿到本地锁,做业务数据修改,拿到全局锁,提交本地事务。如果未拿到全局锁,超时失败将回滚本地事务,释放本地锁。
二阶段:
成功:(异步操作)删除undolog,释放全局锁。
失败:查找undolog,驱动RM回滚本地事务,释放全局锁。

TCC模式

在这里插入图片描述
TCC模式与AT模式比更灵活,不需要依赖数据库。但是需要手动实现try、commit、cancel3个方法。TCC框架还存在3个问题:空回滚、幂等、悬挂。使用useTCCFence参数(增加日志表记录全局事务状态)可以解决。

相关文章:

  • [Linux] Linux线程信号的原理与应用
  • (二十四)Java网络编程全面解析:从基础到实践
  • 在 Excel 中使用通义灵码辅助开发 VBA 程序
  • LeetCode 1345. 跳跃游戏 IV(困难)
  • ZooKeeper 原理解析及优劣比较
  • Gartner《AI Infrastructure WithKubernetes参考架构》学习心得
  • LabVIEW下AI开发
  • 杰里7006d日志分析
  • 前端混色实现半透明效果
  • conda 设置env后,环境还是安装在c盘的解决方式:
  • CSS专题之常见布局
  • 虚拟环境中VSCode运行jupyter文件
  • Spring Boot中的分布式缓存方案
  • LSTM语言模型验证代码
  • 零售智能执行大模型架构设计:从空间建模到上下文推理,再到智能Agent
  • 小程序涉及提供提供文本深度合成技术,请补充选择:深度合成-AI问答类目
  • 【Redisson】快速实现分布式锁
  • 打卡第二十三天
  • 车道线检测:自动驾驶的“眼睛”
  • 通义灵码助力Neo4J开发:快速上手与智能编码技巧
  • 斗鱼一季度直播收入降近三成,语音社交服务推高广告等收入,称将持续打击涉赌行为
  • 观察|脱欧5年后英欧再办峰会,多项突破性协议意味着什么?
  • 钟睒睒:不反对代工,但农夫山泉目前所有产品是无法代工的
  • 住建部:截至去年底常住人口城镇化率达到67%
  • 无人机考证热背后:掏空年轻人钱包,养肥培训机构
  • 国家统计局:中美大幅降低关税有利于双方贸易增长,也有利于世界经济复苏