美文网首页
分布式事务

分布式事务

作者: lucasgao | 来源:发表于2021-03-26 15:57 被阅读0次

一致性保证

强一致性

任何依次读的数据都是最新的。

弱一致性

最终一致性

分布式事务

两阶段提交

分为2部分

  1. vote, prepare

    第一个阶段需要保证每个参与者都可以执行操作

  2. commit or rollback

    在参与者都OK的情况下,执行事务提交。或者事务回滚。

2pc-success

状态变化

2pc-state

站在协调者的角度,在发起投票之后就进入了 WAIT 状态,等待所有参与者回复各自事务执行状态,并在收到所有参与者的回复后决策下一步是发送 commit 或 rollback 信息。

站在参与者的角度,当回复完协调者的投票请求之后便进入 READY 状态(能够正常执行事务),接下去就是等待协调者最终的决策通知,一旦收到通知便可依据决策执行 commit 或 rollback 操作。

存在的问题

  • 单点问题

    协调着是一个单体服务,所以他的稳定性没法保证。

  • 同步阻塞

    参与者在执行阶段是一个同步阻塞的状态,

  • 超时问题 -> 导致数据不一致

    比如协调着没有收到commit请求等

三阶段提交

针对上述问题,引出了三阶段提交。

  1. CanCommit

    这是一个轻量的询问,咨询是否可以。如果不行,也就没必要继续了。这样,我们就没必要一直占着很多资源了。

  2. PreCommit

    类似于二阶段提交的Vote

  3. DoCommit

    类似于二阶段提交的commit。

除了上述之外,引入了超时

  1. precommit阶段,如果参与者发送no之后没有收到反馈,进行rollback
  2. docommit阶段,自行提交。

宕机恢复

  1. cancommit阶段,未同意,未发出vote ,自行中止
  2. precommit阶段,如果是同意,则自行commit
  3. cancommit, commit

单点问题

  1. 启动watchdog

TCC

在这里插入图片描述

try

业务实现,2pc 资源实现。

confirm

cancel

MySQL的事务提交保证

相关文章

  • 分布式事务与分布式锁

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

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

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

  • 分布式事务

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