初识Seata

简介: 初识Seata

一个业务跨越了多个服务,那么我们就将这些服务称为分支事务,要保证所有分支事务最终状态一致,这样的事务就是分布式事务

可用性:集群中的节点,能不能被正常访问

分区:部分节点与其它节点失去连接,形成独立分区

容错:出现分区时,整个系统也要持续对外提供服务

简述CAP定理内容?

分布式系统节点通过网络连接,一定会出现分区问题(P)

当分区出现时,系统的一致性(C)和可用性(A)就无法同时满足

思考:elasticaearch集群是CP还是AP?

ES集群出现分区时,故障节点会被剔除集群,数据分片会重新分配到其它节点,保证数据一致。因此是低可用性,高一致性,属于CP

BASE理论

BASE理论是对CAP的一种解决思路,包含三个思想:

Basically Available(基本可用): 分布式系统在出现故障时,允许损失部分可用性,即保证核心可用

Soft State(软状态):在一定时间内,允许出现中间状态,比如临时的不一致状态

Eventually Consistent(最终一致性):虽然无法保证强一致性,但是在软状态结束后,最终达到数据一致。

解决分布式事务的思想和模型:

全局事务:整个分布式事务

分支事务:分布式事务中包含的每个子系统的事务

事务协调者:维护全局和分支事务的状态,协调全局事务提交或回滚;

事务管理器:定义全局事务的范围、开始全局事务、提交或回滚全局事务

资源管理器:管理分支事务处理的资源,与TC交谈以注册分支事务和报告分支事务的状态,并驱动分支事务提交或回滚。

初识Seata

TCC的空回滚和业务悬挂

当某分支事务的try阶段阻塞时,可能导致全局事务超时而触发二阶段的cancel操作。在未执行try操作时先执行了cancel操作,这时cancel不能做回滚,就是空回滚。

解决分布式事务,各个子系统之间必须能感知到彼此的事务状态,才能保证状态一致,因此需要一个事务协调者来协调每一个事务的参与者(子系统事务)。

简述BASE理论三个思想:

基本可用

软状态

最终一致

解决分布式事务的思想和模型:

全局事务:整个分布式事务

分支事务:分布式事务中包含的每个子系统的事务

最终一致思想:各分支事务分别执行并提交,如果有不一致的情况,再想办法恢复数据

强一致思想:各分支事务执行完业务不要提交,等待彼此结果。而后统一提交或回滚

初识Seata

Seata是2019年1月份蚂蚁金服和阿里巴巴共同开源的分布式事务解决方案。致力于提高性能和简单易用的分布式事务服务,为用户打造一站式的分布式解决方案。

Seata架构

Seata事务管理中有三个重要的角色:

TC(Transaction Coordinator)-事务协调者:维护全局和分支事务的状态,协调全局事务提交或回滚。

TM(Transaction Manager)-事务管理器:定义全局事务的范围、开始全局事务、提交或回滚全局事务。

RM-资源管理器:管理分支事务处理的资源,与TC交谈以注册分支事务和报告分支事务的状态,并驱动分支事务提交或回滚。

Seata提供了四种不同的分布式事务解决方案:

XA模式:强一致性分阶段事务模式,牺牲了一定的可用性,无业务侵入

TCC模式:最终一致的分阶段事务模式,有业务侵入

AT模式:最终一致的分阶段事务模式,无业务侵入,也是Seata的默认模式

SAGA模式:长事务模式,有业务侵入


目录
相关文章
|
3月前
|
关系型数据库 MySQL 数据库
SpringCloud2023中使用Seata解决分布式事务
对于分布式系统而言,需要保证分布式系统中的数据一致性,保证数据在子系统中始终保持一致,避免业务出现问题。分布式系统中对数据的操作要么一起成功,要么一起失败,必须是一个整体性的事务。Seata简化了这个使用过程。
85 2
|
5月前
|
消息中间件 SQL 关系型数据库
分布式事务-seata
分布式事务-seata
147 0
|
5月前
|
SQL 数据库
Seata:分布式事务
Seata:分布式事务
171 0
|
6月前
|
SQL 容灾 数据库
分布式事务Seata
在分布式架构系统中,服务不止一个,一个完整的业务链路肯定也不止调用一个服务,此时每个服务都有自己的数据库增删改查,而每一个写操作对应一个本地事务。如果想要确保全部的业务状态一致,也就意味着需要所有的本地事务状态一致,这在我们之前的学习中肯定是不具备的,如何做到跨服务、跨数据源的事务一致性将是本章节的重点学习内容。
96 2
|
6月前
|
NoSQL Nacos Redis
Seata 配置
Seata
201 2
|
Nacos 微服务
【Seata】初识Seata
Seata是 2019 年 1 月份蚂蚁金服和阿里巴巴共同开源的分布式事务解决方案。致力于提供高性能和简单易用的分布式事务服务,为用户打造一站式的分布式解决方案。
226 0
|
程序员 数据库 微服务
分布式事务(Seata)TmTransactionException 问题
分布式事务(Seata)TmTransactionException 问题
376 1
|
数据库 Nacos
seata实现分布式事务
seata实现分布式事务
77 0
|
SQL 关系型数据库 数据库
分布式事务--Seata
分布式事务--Seata
91 0
|
消息中间件 监控 搜索推荐
Seata实现分布式事务(1)
Seata实现分布式事务(1)
67 0