美文网首页
分布式事务

分布式事务

作者: Wu杰语 | 来源:发表于2021-02-10 16:29 被阅读0次

分布式事务是分布式容错设计方式,与分布式事务相关的我们可以从理论到相关技术,最后到设计方法。

分布式事务理论

从理论上讲,分布式事务经常和数据库对比:

  • 数据库 ACID
  • 分布式事务 CAP BASE

数据库ACID分别指:

  • A atomic 原子性,事务包含的语句要成功则全部成功,要么全部失败
  • C consistency 事务包含的数据状态是一致的,满足完整性约束
  • I Isolation 多事务并发互相不干扰
  • D Durability 一旦事务提交数据就永久保存下来

分布式CAP

  • Consistency 分布式系统同一时刻保存的数据是一致的
  • Availability 分布式系统一部分节点不可用后,整体仍然可用
  • Patiton tolarence 当一部分分区不可用时,必然在C和A之间选择
    CAP原则是CAP三者不可能同时满足,只能同时满足其中两者。

分布式BASE

  • Basic available 基本可用
  • Soft state
  • Eventually Consistency 最终一致

而后者就成为柔性事务。

分布式事务设计的方法

参见https://zhuanlan.zhihu.com/p/183753774

  • 2PC 3PC
  • TCC
  • 本地消息、事务消息、最大努力通知
2PC

可以看出 2PC 和 3PC 是一种强一致性事务,不过还是有数据不一致,阻塞等风险,而且只能用在数据库层面。
2PC是将事务分为两个阶段,首先进行事务准备,除了提交事务,不干什么别的。
然后通过事务协调者,将命令发送给各个数据库,如果全部成功,则返回成功,否则就全部进行回滚。

TCC

而 TCC 是一种补偿性事务思想,适用的范围更广,在业务层面实现,因此对业务的侵入性较大,每一个操作都需要实现对应的三个方法。Try - Confirm - Cancel,和2PC的设计思想一样,中间有个协调者,或者说管理事务生命周期者,用以管理事务的生命周期。
例如说创建某个业务,由若干结点组成,每个结点都需要提供三个方法,如果有一个结点失败,则要全部返回失败,进行回滚。确认和取消就涉及到重试,要重试就涉及到幂等。

  • 重试 在应用层面根据返回进行删除,删除时根据情况需要有个间隔,在spring中,使用spring-retrie组件https://blog.csdn.net/qq_29897369/article/details/91347075
  • 幂等,因为重试,需要考虑幂等,有两种方式,一种是在上层由应用来控制,先查询然后再下发,一种是由下层去保证。
本地消息、事务消息和最大努力通知

本地消息、事务消息和最大努力通知其实都是最终一致性事务,因此适用于一些对时间不敏感的业务。

  • 本地消息 本地保存分布式的消息列表,如果组件成功,就将该消息的状态该为成功,直至最终所有的消息变成成功,这是最终一致性。
  • 事务消息 主要例子是RabitMQ中,开启事务,提交消息,如果未收到消息,则会进行消息回滚。

相关文章

  • 分布式事务与分布式锁

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

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

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

  • 分布式事务

    目录 分布式事务解决方案 长事务: 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/nrsuzktx.html