首页 > 其他分享 >分布式事务

分布式事务

时间:2023-05-31 20:14:13浏览次数:31  
标签:事务 数据库 协调者 回滚 提交 分布式

分布式事务

回顾事务

什么是事务 ?

  • 一组对数据库的操作,整体要么一起成功,要么一起失败

事务的特性?

  • 一致性
  • 原子性

在项目中做事务控制 ? 怎么做 ?

  • 在启动类上加@EnableTransactonManager
  • 事务加在service层,加在实现类上或者接口上,都可以@transactional

分布式事务背景

CAP : 分布式系统定理

C:一致性 +A: 可用性 + P:分区性

  • 单独理解三个指标含义
  • 三个指标只能选择两个
  • p是一定要考虑的,分区是不可避免的

  • CP: 大家一起提交,一起失败,必须完全一致
  • AP: 最终一致即可(eg:服务器宕机了,但是仍然可以执行,服务器恢复后重新执行。。)

全局事务 : 整个分布式事务

分支事务 : 事务参与者 (子事务)

Seata架构(事务管理)

阿里开源的,解决分布式事务的,有三个主要概念,见下

  • TC :事务协调者 决策者 安装seata
  • TM : 事务管理器 全局事务 (微服务相关)
  • RM : 资源管理器 事务参与者 (微服务相关)

seata提供的四种分布式事务解决方案

  • XA : 把整个事务分成两阶段提交 : 第一阶段准备(本地事务不提交),第二阶段提交或者回滚(看返回的结果,大家是否都是OK),

    • 缺点 : 完全依赖与数据库事务控制,第一阶段不提交,会锁定数据库资源,造成阻塞,性能差
    • 特点 : 强一致

  • 在JAVA中部署的步骤:

  • TCC

  • AT : 解决 XA 模式的缺点,仍是两阶段提交(2PC )

    • 注册分支事务,准备阶段时,执行sql后,直接提交本地事务(无法依赖数据库事务回滚或者提交),报告当前状态给事务协调者TC
      • 记录更新前后快照 (数据),存入undo_ log日志表中
    • 回滚或者提交 (完成后都要删除undo_log)
    • 最终一致
  • SAGA

标签:事务,数据库,协调者,回滚,提交,分布式
From: https://www.cnblogs.com/psuitj/p/distributedTransaction.html

相关文章

  • 生态共建丨崖山数据库系统与杉岩分布式存储系统完成兼容互认证 
    近日,深圳计算科学研究院(以下简称:深算院)自主研发设计的数据库管理系统YashanDBV22.2产品与深圳市杉岩数据技术有限公司(以下简称:杉岩数据)的分布式存储系统完成兼容性互认证。测试结果表明,双方产品完全兼容,在功能、性能及兼容性方面表现良好,整体运行稳定高效。崖山数据库系统YashanDB......
  • Greenplum——升级的分布式PostgresSQL
    Greenplum数据库基于PostgreSQL开源技术。本质上讲,它是多个PostgreSQL实例一起充当一个数据库管理系统。Greenplum以PostgreSQL8.2.15为基础构建,在SQL支持、特性、配置选项和终端用户功能方面非常像PostgreSQL,用户操作Greenplum就跟平常操作PostgreSQL一样。不过,为了支持Greenplum......
  • 分布式锁& 分布式事务
    目录分布式事务什么是分布式事务?分布式事务的实现方式有哪些?两阶段提交和三阶段提交的区别是什么?TCC事务模型是如何解决分布式事务的?分布式事务的强一致性和最终一致性有什么区别?如何保证分布式事务的可靠性?分布式事务的优缺点是什么?分布式事务什么是分布式事务?分布式事务是指......
  • Python的分布式网络爬虫
    分布式爬虫其实就是指利用多台计算机分布式地从互联网上采集数据的一种爬虫。它可以把大规模的任务分解成若干小规模的,由多台计算机并行进行处理,大大提高了效率和速度。分布式爬虫有很多优势:解决单机爬虫效率低的问题,分布式爬虫可以将任务分配给多个节点并行处理,大大提高了效率和......
  • 图解Redis和Zookeeper分布式锁
    1.基于Redis实现分布式锁Redis分布式锁原理如上图所示,当有多个Set命令发送到Redis时,Redis会串行处理,最终只有一个Set命令执行成功,从而只有一个线程加锁成功2:SetNx命令加锁利用_Redis的setNx命令在Redis数据库中创建一个<Key,Value>记录,这条命令只有当Redis中没有这个Key的时候......
  • 区块链的技术——账本是去中心化的分布式存储,加密+校验(哈希二叉树)+多数选举来防止篡改
    ......
  • 事务隔离级别
    查看默认的事务隔离级别mysql默认是的可重复读repeatablereadselect@@transaction_isolation;设置事务的隔离级别:不同级别处理事务的效率不同(一般不用mysql语句来设置,用框架来设置)setsessiontransactionisolationlevelreaduncommitted;--读未提交setsessiont......
  • 《可伸缩服务架构-框架与中间件》-01-分布式发号器
    本文主要是设计一款永不重复的高性能分布式发号器。源码地址——码云:https://gitee.com/robertleepeak/vesta-id-generatorVesta是一款通用的ID产生器,互联网俗称统一发号器,它具有全局唯一、粗略有序、可反解和可制造等特性,它支持三种发布模式:嵌入发布模式、中心服务器发布模式、......
  • 六、Redis分布式系统-动力节点最新Redis7视频笔记
    6Redis分布式系统Redis分布式系统,官方称为RedisCluster,Redis集群,其是Redis3.0开始推出的分布式解决方案。其可以很好地解决不同Redis节点存放不同数据,并将用户请求方便地路由到不同Redis的问题。6.1数据分区算法分布式数据库系统会根据不同的数据分区算法,将数据分散存储到不......
  • 第六章Redis分布式系统(动力节点)Redis7笔记
    6Redis分布式系统Redis分布式系统,官方称为RedisCluster,Redis集群,其是Redis3.0开始推出的分布式解决方案。其可以很好地解决不同Redis节点存放不同数据,并将用户请求方便地路由到不同Redis的问题。6.1数据分区算法分布式数据库系统会根据不同的数据分区算法,将数据分散存储到不......