网页设计的网网页设计的网站建设,无锡做智能网站,Wordpress网站删除多余主题,推广策略和推广方案一样吗文章目录 seata概述Seata 中封装了四种分布式事务模式#xff0c;分别是#xff1a;AT 模式#xff0c;TCC 模式#xff0c;Saga 模式#xff0c;XA 模式#xff0c; 今天我们来聊聊seata seata
概述
在微服务架构下#xff0c;由于数据库和应用服务的拆分#xff0c… 文章目录 seata概述Seata 中封装了四种分布式事务模式分别是AT 模式TCC 模式Saga 模式XA 模式 今天我们来聊聊seata seata
概述
在微服务架构下由于数据库和应用服务的拆分导致原本一个事务单元中的多个 DML 操作变成了跨进程或者跨数据库的多个事务单元的多个 DML 操作
而传统的数据库事务无法解决这类的问题所以就引出了分布式事务的概念。
分布式事务本质上要解决的就是跨网络节点的多个事务的数据一致性问题业内常见的解决方法有两种
强一致性就是所有的事务参与者要么全部成功要么全部失败全局事务协调 者需要知道每个事务参与者的执行状态再根据状态来决定数据的提交或者回滚
最终一致性也叫弱一致性也就是多个网络节点的数据允许出现不一致的情况 但是在最终的某个时间点会达成数据一致。
基于 CAP 定理我们可以知道强一致性方案对于应用的性能和可用性会有影响 所以对于数据一致性要求不高的场景就会采用最终一致性算法。
在分布式事务的实现上对于强一致性我们可以通过基于 XA 协议下的二阶段提交来实现对于弱一致性可以基于TCC 事务模型、可靠性消息模型等方案来实现。
市面上有很多针对这些理论模型实现的分布式事务框架我们可以在应用中集成这些框架来实现分布式事务。
而 Seata 就是其中一种它是阿里开源的分布式事务解决方案提供了高性能且简单易用的分布式事务服务。
Seata 中封装了四种分布式事务模式分别是
AT 模式
是一种基于本地事务二阶段协议来实现的最终数据一致性方案也是Seata 默认的解决方案
TCC 模式
TCC 事务是 Try、Confirm、Cancel 三个词语的缩写简单理解就是把一个完整的业务逻辑拆分成三个阶段然后通过事务管理器在业务逻辑层面根据每个分支事务的执行情况分别调用该业务的 Confirm 或者 Cacel 方法。
Saga 模式
Saga 模式是 SEATA 提供的长事务解决方案在 Saga 模式中业务流程中每个参与者都提交本地事务当出现某一个参与者失败则补偿前面已经成功的参与者。
XA 模式
XA 可以认为是一种强一致性的事务解决方法它利用事务资源数据库、消息服务等对 XA 协议的支持以 XA 协议的机制来管理分支事务的一种事务模式。 从这四种模型中不难看出在不同的业务场景中我们可以使用 Seata 的不同事务模型来解决不同业务场景中的分布式事务问题因此我们可以认为 Seata 是一个一站式的分布式事务解决方案。