分布式事务 --- 理论基础、Seata架构、部署

这篇具有很好参考价值的文章主要介绍了分布式事务 --- 理论基础、Seata架构、部署。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、分布式事务问题

1.1、本地事务

本地事务,也就是传统的单机事务。在传统数据库事务中,必须要满足四个原则:

分布式事务 --- 理论基础、Seata架构、部署

  

1.2、分布式事务

分布式事务,就是指不是在单个服务或单个数据库架构下,产生的事务,例如:

  • 跨数据源的分布式事务

  • 跨服务的分布式事务

  • 综合情况

  

在数据库水平拆分、服务垂直拆分之后,一个业务操作通常要跨多个数据库、服务才能完成。例如电商行业中比较常见的下单付款案例,包括下面几个行为:

  • 创建新订单

  • 扣减商品库存

  • 从用户账户余额扣除金额

 

完成上面的操作需要访问三个不同的微服务和三个不同的数据库。

分布式事务 --- 理论基础、Seata架构、部署

订单的创建、库存的扣减、账户扣款在每一个服务和数据库内是一个本地事务,可以保证ACID原则。

但是当我们把三件事情看做一个"业务",要满足保证“业务”的原子性,要么所有操作全部成功,要么全部失败,不允许出现部分成功部分失败的现象,这就是分布式系统下的事务了。

此时ACID难以满足,这是分布式事务要解决的问题

 

 

二、理论基础

解决分布式事务问题,需要一些分布式系统的基础知识作为理论指导。

 

2.1、CAP定理

1998年,加州大学的计算机科学家 Eric Brewer 提出,分布式系统有三个指标。

  • Consistency(一致性)

  • Availability(可用性)

  • Partition tolerance (分区容错性)

 分布式事务 --- 理论基础、Seata架构、部署

它们的第一个字母分别是 C、A、P。

Eric Brewer 说,这三个指标不可能同时做到。这个结论就叫做 CAP 定理。

  

2.1.1、一致性

Consistency(一致性):用户访问分布式系统中的任意节点,得到的数据必须一致。

比如现在包含两个节点,其中的初始数据是一致的:

分布式事务 --- 理论基础、Seata架构、部署

当我们修改其中一个节点的数据时,两者的数据产生了差异: 分布式事务 --- 理论基础、Seata架构、部署 要想保住一致性,就必须实现node01 到 node02的数据 同步: 分布式事务 --- 理论基础、Seata架构、部署  

2.1.2、可用性

Availability (可用性):用户访问集群中的任意健康节点,必须能得到响应,而不是超时或拒绝。

如图,有三个节点的集群,访问任何一个都可以及时得到响应:

分布式事务 --- 理论基础、Seata架构、部署

当有部分节点因为网络故障或其它原因无法访问时,代表节点不可用: 分布式事务 --- 理论基础、Seata架构、部署 

2.1.3、分区容错

Partition(分区):因为网络故障或其它原因导致分布式系统中的部分节点与其它节点失去连接,形成独立分区。

分布式事务 --- 理论基础、Seata架构、部署

Tolerance(容错):在集群出现分区时,整个系统也要持续对外提供服务

 

2.1.4、矛盾

在分布式系统中,系统间的网文章来源地址https://www.toymoban.com/news/detail-433425.html

到了这里,关于分布式事务 --- 理论基础、Seata架构、部署的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 分布式:一文吃透分布式事务和seata事务

    分布式:一文吃透分布式事务和seata事务

    什么是事务 事务是并发控制的单位,是用户定义的一个操作序列。 事务特性 原子性(Atomicity): 事务是数据库的逻辑工作单位,事务中包括的诸操作要么全做,要么全不做。 一致性(Consistency): 事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。一致性

    2024年02月07日
    浏览(10)
  • 【分布式事务】Seata 开源的分布式事务解决方案

    【分布式事务】Seata 开源的分布式事务解决方案

    Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。 阿里巴巴作为国内最早一批进行应用分布式(微服务化)改造的企业,很早就遇到微服务架构下

    2024年02月02日
    浏览(11)
  • Seata分布式事务

    Seata分布式事务

    本地事务,也就是传统的单机事务。在传统数据库事务中,必须要满足四个原则: 分布式事务,就是指不是在单个服务或单个数据库架构下,产生的事务,例如: 跨数据源的分布式事务 跨服务的分布式事务 综合情况 完成上面的操作需要访问三个不同的微服务和三个不同的

    2024年02月09日
    浏览(12)
  • 分布式事务 Seata

    分布式事务 Seata

    事务(Transaction)是计算机科学中的一个重要概念,主要是指一个 完整的、不可分割的操作序列 。在关系型数据库中,事务通常用于描述对数据库进行的一系列操作的执行单元。 事务的ACID特性 : 原子性(Atomicity):事务是一个原子操作,要么全部执行,要么全部回滚。如

    2024年02月17日
    浏览(11)
  • 分布式事务框架Seata

    分布式事务框架Seata

    分布式事务框架Seata 一、seata是什么 在微服务架构下,由于数据库和应用服务的拆分,导致原本一个事务单元中的多个 DML 操作,变成了跨进程或者跨数据库的多个事务单元的多个 DML 操作, 而传统的数据库事务无法解决这类的问题,所以就引出了分布式事务的概念。 分布式

    2024年02月10日
    浏览(12)
  • 微服务--Seata(分布式事务)

    微服务--Seata(分布式事务)

    TCC模式在代码中实现:侵入性强,并且的自己实现事务控制逻辑 Try,Confirm() cancel() 第三方开源框架:BeyeTCCTCC-transactionHimly 异步实现:MQ可靠消息最终一致性 @GlobalTransacational---AT模式

    2024年02月10日
    浏览(11)
  • Eureka整合seata分布式事务

    Eureka整合seata分布式事务

    在分布式系统下,一个业务跨越多个服务或数据源,每个服务都是一个分支事务,要保证所有分支事务最终状态一致,这样的事务就是分布式事务。 、CAP定理 1、一致性 用户访问分布式系统中的任意节点,得到的数据必须是一致的。 节点1的数据一旦发生修改,节点2的数据必

    2024年01月19日
    浏览(14)
  • seata分布式事务(与dubbo集成)

    seata分布式事务(与dubbo集成)

            Seata 是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务。 @GlobalTransactional:全局事务注解,添加了以后可实现分布式事务的回滚和提交,用法与spring的@Transactional注解类似,注解参数的作用也基本一致         se

    2024年01月21日
    浏览(12)
  • 分布式事务 —— SpringCloud Alibaba Seata

    传统的单体应用中,业务操作使用同一条连接操作不同的数据表,一旦出现异常就可以整体回滚。随着公司的快速发展、业务需求的变化,单体应用被拆分成微服务应用,原来的单体应用被拆分成多个独立的微服务,分别使用独立的数据源,业务操作需要调用三个服务来完成

    2024年02月08日
    浏览(10)
  • 08-微服务Seata分布式事务使用

    08-微服务Seata分布式事务使用

    一、分布式事务简介 事务ACID: A(Atomic):原子性,构成事务的所有操作,要么都执行完成,要么全部不执行,不可能出现部分成功部分失 败的情况。 C(Consistency):一致性,在事务执行前后,数据库的一致性约束没有被破坏。比如:张三向李四转100元, 转账前和转账后的

    2024年01月24日
    浏览(16)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包