分布式事务:分布式事务核心原理与Seata介绍

今天,就正式进入分布式事务篇章的学习,首先,我们简单介绍下分布式事务的核心原理与SpringCloud Alibaba技术栈中的Seata框架。

本章总览

分布式事务:分布式事务核心原理与Seata介绍插图亿华云

分布式事务

分布式事务是互联网行业一直无法绕过的技术难题,如何更加高效的学习分布式事务呢?

Seata介绍

Seata相关的内容来自Seata官网。

链接:https://seata.io/zh-cn/docs/overview/what-is-seata.html

Seata 是什么?

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

分布式事务:分布式事务核心原理与Seata介绍插图1亿华云

AT 模式

前提基于支持本地 ACID 事务的关系型数据库。Java 应用,通过 JDBC 访问数据库。整体机制

两阶段提交协议的演变:

一阶段:业务数据和回滚日志记录在同一个本地事务中提交,释放本地锁和连接资源。二阶段:

提交异步化,非常快速地完成。

回滚通过一阶段的回滚日志进行反向补偿。

写隔离一阶段本地事务提交前,需要确保先拿到「全局锁」。拿不到「全局锁」,不能提交本地事务。拿「全局锁」的尝试被限制在一定范围内,超出范围将放弃,并回滚本地事务,释放本地锁。

以一个示例来说明:

两个全局事务 tx1 和 tx2,分别对 a 表的 m 字段进行更新操作,m 的初始值 1000。

tx1 先开始,开启本地事务,拿到本地锁,更新操作 m = 1000 - 100 = 900。本地事务提交前,先拿到该记录的

THE END
Copyright © 2024 亿华云