分布式事务:分布式事务核心原理与Seata介绍
今天,就正式进入分布式事务篇章的学习,首先,我们简单介绍下分布式事务的核心原理与SpringCloud Alibaba技术栈中的Seata框架。
本章总览
分布式事务
分布式事务是互联网行业一直无法绕过的技术难题,如何更加高效的学习分布式事务呢?
Seata介绍
Seata相关的内容来自Seata官网。
链接:https://seata.io/zh-cn/docs/overview/what-is-seata.html
Seata 是什么?
Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。
AT 模式
前提基于支持本地 ACID 事务的关系型数据库。Java 应用,通过 JDBC 访问数据库。整体机制
两阶段提交协议的演变:
一阶段:业务数据和回滚日志记录在同一个本地事务中提交,释放本地锁和连接资源。二阶段:
提交异步化,非常快速地完成。
回滚通过一阶段的回滚日志进行反向补偿。
写隔离一阶段本地事务提交前,需要确保先拿到「全局锁」。拿不到「全局锁」,不能提交本地事务。拿「全局锁」的尝试被限制在一定范围内,超出范围将放弃,并回滚本地事务,释放本地锁。
以一个示例来说明:
两个全局事务 tx1 和 tx2,分别对 a 表的 m 字段进行更新操作,m 的初始值 1000。
tx1 先开始,开启本地事务,拿到本地锁,更新操作 m = 1000 - 100 = 900。本地事务提交前,先拿到该记录的
THE END