>>分享孙卫琴的Java技术专稿和著作 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 11372 个阅读者 刷新本主题
 * 贴子主题:  【Spring Cloud Alibaba专题】Seata的架构 回复文章 点赞(0)  收藏  
作者:sunweiqin    发表时间:2022-08-25 11:39:09     消息  查看  搜索  好友  邮件  复制  引用

本文参考孙卫琴所创作的<<Spring Cloud Alibaba微服务开发零基础入门到实战>>一书

Seata是一款开源的分布式事务框架,致力于在微服务架构中提供高性能和简单易用的分布式事务管理服务。如图1所示,在Seata框架中,一共有三个角色:
  • TC(Transaction Coordinator,事务协调者):管理全局和分支事务的状态,驱动分支事务的提交或撤销,从而提交或撤销全局事务。
  • TM(Transaction Manager,事务管理器):声明全局事务的边界,包括:开始全局事务、提交或撤销全局事务。
  • RM(Resource Manager,资源管理器):管理分支事务处理的资源,与TC交互,向TC注册分支事务并报告分支事务的状态,TC会驱动RM提交或撤销分支事务。
点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小

图1 Seata框架中的三个角色

TC是单独部署的服务器,称之为Seata Server,TM和RM是嵌入到微服务中的客户端组件。
在图2中,微服务1调用微服务2,微服务2调用微服务3,共同完成一个分布式的全局事务。该全局事务的生命周期如下:
(1)TM请求TC开启一个全局事务,TC会生成一个XID作为该全局事务的编号,XID会在微服务的调用链路中传播,保证将多个微服务的分支事务关联在一起。
(2)RM请求TC将本地事务注册为全局事务的分支事务,通过全局事务的XID进行关联。
(3)TM请求TC提交或撤销全局事务。
(4)TC驱动RM提交或撤销本地的分支事务。
点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小
图2  分布式的全局事务的生命周期




程序猿的技术大观园:www.javathinker.net

[这个贴子最后由 sunweiqin 在 2024-07-11 13:43:39 重新编辑]
  Java面向对象编程-->Lambda表达式
  JavaWeb开发-->使用Session(Ⅰ)
  JSP与Hibernate开发-->Java对象持久化技术概述
  Java网络编程-->客户端协议处理框架
  精通Spring-->组合(Composition)API
  Vue3开发-->Vue Router路由管理器
  【Vue.js技术专题】CSS中DOM元素的过渡模式
  【Vue.js技术专题】组件的递归
  【Spring Cloud Alibaba专题】GateWay的内置断言工厂
  【Spring Cloud Alibaba专题】SkyWalking整合MySQL
  【持久化专题】为什么JPA和Hibernate的持久化方法都抛出运行...
  【Spring专题】把Model的数据存放在session范围
  【Spring专题】@Query和@Modifying注解的增删改操作
  【Vue专题】Vue3的计算属性实用范例:实现购物车
  【持久化专题】JPA API的级联操作
  【持久化专题】对象-关系的映射概念
  【Java网络编程专题】用Java套接字访问HTTP服务器读取网页数...
  【Java网络编程专题】通过JDBC API调用存储过程
  【持久化专题】比较JPA的EntityManager接口与Hibernate的Ses...
  IT技术书写作技巧分享:慎用概念和术语
  【Java基础编程专题】Java基本类型和引用类型的三个区别
  更多...
 IPIP: 已设置保密
楼主      
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


中文版权所有: JavaThinker技术网站 Copyright 2016-2026 沪ICP备16029593号-2
荟萃Java程序员智慧的结晶,分享交流Java前沿技术。  联系我们
如有技术文章涉及侵权,请与本站管理员联系。