天增的博客
首页
博客
  • 分布式解决方案
  • Java并发工具包
  • redis
  • LeetCode
  • 系统设计
  • JVM体系
Github (opens new window)
Rss (opens new window)
  • zh-CN
  • en-US
首页
博客
  • 分布式解决方案
  • Java并发工具包
  • redis
  • LeetCode
  • 系统设计
  • JVM体系
Github (opens new window)
Rss (opens new window)
  • zh-CN
  • en-US
  • 分布式解决方案
  • 分布式理论
    • 三驾马车
      • The Google File System
      • BigTable中文翻译
      • MapReduce
    • 理论基础
    • 共识算法
      • Raft算法
      • Paxos算法
    • 通讯协议-Gossip
  • 流量调度
    • 流量控制
    • 服务路由
    • 负载均衡
  • 数据调度
    • 分布式缓存
    • 数据库
    • 分布式事务
      • 事务分类
        • 刚性事务的实现
        • 柔性事务的实现
        • 总体的⽅案对⽐
      • Seata框架
        • Seata解决方案
          • AT模式
          • TCC模式
          • Sega模式
          • XA模式
    • 分布式锁
    • 分布式ID
  • 服务治理
    • 服务注册和发现
    • 链路追踪
    • 服务监控
    • 服务降级和熔断
  • 高并发架构
  • topic
  • 分布式解决方案
  • 数据调度
  • 分布式事务
  • Seata框架
2022-04-26

Seata框架

# Seata框架

Seata 是⼀款开源的分布式事务解决⽅案,致⼒于提供⾼性能和简单易⽤的分布式事务服务。Seata 将为⽤户提供了 AT、TCC、SAGA 和 XA 事务模式,为⽤户打造⼀站式的分布式解决⽅案。

在 Seata 开源之前,Seata 对应的内部版本在阿⾥经济体内部⼀直扮演着分布式⼀致性中间件的⻆⾊,帮助经济体平稳的度过历年的双11,对各BU业务进⾏了有⼒的⽀撑。商业化产品GTS 先后在阿⾥云、⾦融云进⾏售卖

# Seata模块

Seata分为三大模块:

  • TC :事务协调者。负责我们的事务ID的⽣成,事务注册、提交、回滚等。

  • TM:事务发起者。定义事务的边界,负责告知 TC,分布式事务的开始,提交,回滚。

  • RM:资源管理者。管理每个分⽀事务的资源,每⼀个 RM 都会作为⼀个分⽀事务注册在 TC。

在Seata的AT模式中,TM和RM都作为SDK的⼀部分和业务服务在⼀起,我们可以认为是Client。TC是⼀个独⽴的服务,通过服务的注册、发现将⾃⼰暴露给Client们。

Seata 中有三⼤模块中, TM 和 RM 是作为 Seata 的客户端与业务系统集成在⼀起,TC 作为 Seata 的服务端独立部署。

在 Seata 中,分布式事务的执⾏流程:

  1. TM 开启分布式事务(TM 向 TC 注册全局事务记录);

  2. 按业务场景,编排数据库、服务等事务内资源(RM 向 TC 汇报资源准备状态 );

  3. TM 结束分布式事务,事务⼀阶段结束(TM 通知 TC 提交/回滚分布式事务);

  4. TC 汇总事务信息,决定分布式事务是提交还是回滚;

  5. TC 通知所有 RM 提交/回滚 资源,事务⼆阶段结束;

20210710161530943

最近更新
01
以 root 身份启动 transmission-daemon
12-13
02
Debian系统安装qbittorrent-nox
12-09
03
LXC Debain12安装zerotier并实现局域网自动nat转发
07-29
更多文章>
Theme by Vdoing | Copyright © 2015-2024 天增 | 苏ICP备16037388号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式