springcloud24:分布式事务 Seata处理分布式事务总结篇
- 分布式事务:
分布式事务的问题:- 1:1 一个servlet 对应一个 数据库
- 1:N 一个servlet对应多个数据库
- N:N 多个servlet对应多个数据库
全局事务一致性问题(全局数据一致性的保证)
- Seata是分布式事务的解决方案
分布式ID+三组件模型 全局唯一事务的ID- 三组件
- TC 事务协调器:维护全局事务的运行状态,驱动全局事务提交或回滚
- TM 服务发起提交回滚
- RM 管理分支事务
- 一个XID 对应一系列的微服务(组成一个事务)
- 微服务 利用RM 连接数据库
- 处理过程
- TM向TC申请一个XID(全局唯一事务),且TM能够将XID上下文传播(调用的服务也会获得XID)
- RM向TC注册事务
- TM向TC发起唯一XID的全局提交或回滚
- TC调度XID下的全部事务分支完成提交或回滚请求
- 三组件
- Seata的下载安装使用
@Transaction 事务(本地控制事务 spring的)
@GlobalTransaction 全局事务(全局控制事务 springcloud的) - 测试
- 流程
用户 下单:订单服务中创建订单,调用库存服务扣减商品库存,再远程调用账户服务扣减账户余额,最后再订单服务中修改订单状态已完成
三个数据库 两次远程调用(明显有分布式事务问题) - 完成订单模块微服务
- 改Pom 写yml 把seata修改的配置文件放入(注册到mysql)
- 写与数据库对应的domain
- 编写DAO(以及xml映射文件)
- 编写service(利用feign实现远程调用)
- 编写controller(三个库调用时会出现事务不一致)
- 使用@GlobalTransaction
- 流程
- 使用
springcloud24:分布式事务 Seata处理分布式事务总结篇相关推荐
- mysql事务怎么用,MySQL事务的使用
在上篇文章 MySQL 事务的隔离级别 中已经提到了事务的特性.事务的隔离级别及各个隔离级别可能导致的问题,下面来说说MySQL中事务的使用 MySQL 事务简单使用 # 查看事务自动提交的模式 sh ...
- 多个mapper的事务回滚_揭秘蚂蚁金服分布式事务 Seata 的AT、Saga和TCC模式
作者| 屹远(陈龙),蚂蚁金服分布式事务核心研发 . 导语 本文根据 8月11日 SOFA Meetup#3 广州站 <分布式事务 Seata 及其三种模式详解>主题分享整理,着重分享分布 ...
- 分布式事务Seata原理
一.Seata 介绍: 1.Seata 简介: Seata 是一款开源的分布式事务解决方案,致力于提供高性能与简单易用的分布式事务服务,为用户提供了 AT.TCC.SAGA 和 XA 几种不同的事务模 ...
- 阿里开源分布式事务seata带你入门
介绍 Seata 是阿里巴巴开源的分布式事务中间件,一种分布式事务解决方案,具有高性能和易于使用的微服务架构. 1:对业务无侵入:即减少技术架构上的微服务化所带来的分布式事务问题对业务的侵入 2:高性 ...
- 分布式事务 -- seata框架AT模式实现原理
Seata AT 模式 上一节中我们提到AT模式是基于XA事务模型演变过来的,所以他的整体机制也是一个改进版本的两阶段提交协议. 第一阶段:业务数据和回滚日志记录在同一个本地事务中提交,释放本地锁和链 ...
- Spring Boot之基于Dubbo和Seata的分布式事务解决方案
转载自 Spring Boot之基于Dubbo和Seata的分布式事务解决方案 1. 分布式事务初探 一般来说,目前市面上的数据库都支持本地事务,也就是在你的应用程序中,在一个数据库连接下的操作,可以 ...
- 阿里微服务架构下分布式事务Seata
转载自 阿里微服务架构下分布式事务Seata Seata 是什么? Seata 是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务.在 Seata 开源之前,S ...
- 探秘蚂蚁金服分布式事务 Seata 的AT、Saga和TCC模式
作者| 屹远(陈龙),蚂蚁金服分布式事务核心研发 . 导语 本文根据 SOFA Meetup#3 广州站 <分布式事务 Seata 及其三种模式详解>主题分享整理,着重分享分布式事务产生的 ...
- 分布式事务seata只支持MySQL_阿里分布式事务框架Seata原理解析
Seata框架是一个业务层的XA(两阶段提交)解决方案.在理解Seata分布式事务机制前,我们先回顾一下数据库层面的XA方案. 1. MySQL XA方案 MySQL从5.7开始加入了分布式事务的支持 ...
最新文章
- jquery下拉菜单
- The Innovation | ESCI Indexing
- Eclipse 安装 SVN 插件
- linux随机自启命令,linux设置开机自启动
- .NET 开源项目 StreamJsonRpc 介绍[上篇]
- 在微软工作一年,我学会了什么
- 利用循环神经网络生成唐诗_PyTorch实现用于文本生成的循环神经网络
- 读《人月神话》笔记1
- linux中 查看系统属性 与 可执行文件属性 的方法
- ArcGIS 10.2安装之 ArcSDE的使用
- 三维地震数据segy数据显示
- postgresql fdw mysql_PostgreSQL使用MySQL外表(mysql_fdw)
- 自我总结:找工作面试时注意事项
- Python eval()和exec()函数详解
- 数据错误循环冗余检查是什么意思_德尔西曼.交换机是一种什么设备?通过什么方式进行交换?...
- 如何手机上检查h5页面
- PowerShell 中的目录文件管理
- Access Violation(非法访问)问题解析
- 计算机公共课1-信息技术与计算机文化
- Oracle因修改pga和sga超过memory限制size报错解决