美文网首页
分布式事务

分布式事务

作者: 策马踏清风 | 来源:发表于2020-06-30 14:15 被阅读0次

分布式事务

  1. 是什么
  • 分布式事务就是一次大的事务操作由不同的小操作组成,这些小操作分布在不同的服务器上
  • 分布式事务需要保证不同服务器上的小操作要不全部失败,要不全部成功。本质上是要保证数据库数据一致性
  1. 为什么需要分布式事务
  • 当数据库单表一年产生数据超过1000W时就需要考虑分表,将一个数据库分成多个数据库。保证这些数据库的数据一致性就需要分布式事务
  • 应用业务服务化(SOA),将之前单机应用变成由服务组成的微服务系统。分离出入订单系统用户中心库存中心订单中心等。每个微服务都有自己的数据库。例如提交订单的操作,需要订单和库存同时操作,所以需要分布式事务保证下单成功库存减少,下单失败库存不变。

事务的特性ACID

  1. 原子性A
    整个事务中所有操作要不同时完成,要不全部失败
  2. 一致性C
    事务的执行必须保证系统的一致性,只要事务成功了,事务的操作就一定要体现在数据库中
  3. 隔离性I
    事务之间不会相互影响,一个事物的中间状态不会被其它事务感知
  4. 持久性D
    事务完成了之后事务对数据的操作就会完全保存在数据库中,停电宕机也会保存

基于XA协议的两阶提交

  1. 名词解释
  • XA是一个分布式事务协议,主要分为两个部分事务管理器本地资源管理器
  • 本地资源管理器通常由数据库实现,负责本地资源的提交和回滚
  • 事务管理器作为全局调度者,负责调度本地资源
  1. 步骤
  • 第一阶段:事务管理器通知各个本地资源管理器预备操作,本地资源管理器回复就绪(锁住资源)
  • 第二阶段:事务管理器通知本地资源管理器提交,本地资源管理器回复成功
  1. 优缺点
  • 优点是协议简单,大部分商业数据库(OracleDB2等)都实现了XA协议,使用分布式的成本较低。
  • 缺点是性能差,在mysql中支持不理想(没有prepare阶段日志,准备切换回导致主库和备库数据不一致),很多nosql也没有XA的支持。这些缺点也导致其应用狭隘

基于消息事务实现的最终一致性事务

  1. 解释
  • 消息事务就是基于消息中间件的两阶段提交,是对消息中间件的特殊利用。此方法实现的事务是最终一致性,并不能保证实时一致。
  1. 步骤
  • 系统A发送预备消息给中间件
  • 中间件保存预备消息并返回
  • 系统A执行本地事务
  • 执行结束后发送给消息中间件
  • 消息中间件保存信息并发送给其它系统
  • 其它系统执行本地事务并返回(如果失败中间件会重复发送)
  • mq将最终执行结果返回系统A
  1. 优缺点
  2. 性能好
    2.缺点是如果其它系统一直不成功,会破坏一致性。

TCC编程模式

  • 根据业务决定具体代码实现
  • 一种编程框架,吧业务逻辑分为Try``Confirm``Cancel三个操作
  • 例如下单,Try就是去库存,Confirm是更新订单,Cancel是失败恢复库存
  • 本质是人为进行两段式提交

相关文章

  • 分布式事务与分布式锁

    一、分布式事务 什么事分布式事务 分布式事务就是指事务的资源分别位于不同的分布式系统的不同节点之上的事务。 分布式...

  • 微服务分布式事务--破局

    微服务架构下分布式事务设计实战 商品 订单 支付 分布式事务->长事务本地事务->短事务 分布式事务: 比如 下...

  • 分布式事务

    目录 分布式事务解决方案 长事务: saga 短事务: 设计的时候尽量短事务,能不用分布式事务尽量不用,分布式事务...

  • ATOMIKOS+JTA分布式事务记录

    ATOMIKOS+JTA是用来分布式事务的中间件,那么什么是分布式事务呢? 事务,分为单机事务,分布式事务;单机事...

  • 分布式事务

    一、什么是分布式事务 二、分布式事务产生的原因/分布式事务的应用场景 三、分布式事务的基础/理论 CAP/BASE...

  • 微服务 14:初探微服务分布式事务 - Seata

    1:什么是事务,什么是ACID 2:什么是分布式事务 3:分布式事务解决方案 4:Seata 分布式事务框架 5:...

  • 分布式事务的解决方案

    本文从以下几个方面介绍分布式事务的解决方案: 为什么会有分布式事务分布式事务经典模型分布式事务解决方案 为什么会有...

  • MySQL分布式事务支持

    MySQL分布式事务介绍 InnoDB存储引擎提供了对XA事务的支持,并通过XA事务来支持分布式事务的实现。分布式...

  • 微服务中分布式事务解决方案

    分布式事务解决方案 1、阿里巴巴seata分布式事务 2、 京东ShardingSphere分布式事务 3、tcc...

  • 解密分布式事务框架-Fescar

    1.分布式事务 我曾经能不用分布式事务就别用分布式事务,因为会引入很多的复杂度。虽然再网上有很多开源的分布式事务框...

网友评论

      本文标题:分布式事务

      本文链接:https://www.haomeiwen.com/subject/jwetqktx.html