分布式事务

九纹龙
• 阅读 1602

为什么用分布式

随着业务量激增,单个数据库的性能产生瓶颈的时候,我们会对数据库进行分区,这时单个数据库的事务已经不能适应这种情况了,在集群环境下,想保证集群事务ACID是很难的,即使能达到那么效率和性能会大幅下降
后来就引入一个新的理论CAP
Consistency(一致性), 数据一致更新,所有数据变动都是同步的
Availability(可用性), 好的响应性能
Partition tolerance(分区容忍性) 可靠性
任何分布式系统只可同时满足二点,没法三者兼顾。

下面给出一个分布式事务方案
如下图:
分布式事务

4补偿 情况分析:
当 1 成功 2 失败 处理未成功的消息(重新发消息)
当 1 成功 2 成功 3 失败 检查B消息表中是否执行过UUID,执行过跳过2,直接3
最终达到一致性

优点:经典实用
缺点:建消息表(单记录有追述)

分布式方案有很多,各有优缺点,适合自己的项目就好

点赞
收藏
评论区
推荐文章
事务相关知识集锦
作者:李玉亮引言数据库事务与大多数后端软件开发人员的工作密不可分,本文从事务理论、事务技术、事务实践等方面对常用的相关事务知识进行整理总结,供大家参考。事务理论介绍事务定义在数据库管理系统中,事务是单个逻辑或工作单元,有时由多个操作组成,在数据库中以一致模
分布式事务解决方案
一、什么是分布式事务在早期的单体架构时期,所有的数据操作都在同一个数据库里面进行,比如:A给B转100块钱,A的账户余额100,B的账户余额100,这两个操作放在同一个事务里面即可,由数据库来保证事务的原子性、一致性、持久性、隔离性。但是
Easter79 Easter79
4年前
TiDB 性能竞赛 11.16
TiDB实现了快照隔离级别的分布式事务,支持悲观锁、乐观锁,同时也解决了大事务的难点。事务是数据库的基础,提供高效的、支持完整ACID的分布式事务更是分布式数据库的立足之本。事务是数据库执行的最小单元,允许用户将多个读写操作组合为一个逻辑单元。事务需要满足原子性、一致性、隔离性和持久性,也就是ACID。数据库有多种并发控制方法,乐观并发控制(
Wesley13 Wesley13
4年前
MySQL 乐观锁和悲观锁
前言  1)在数据库的锁机制中介绍过,数据库管理系统(DBMS)中的并发控制的任务是确保在多个事务同时存取数据库中同一数据时不破坏事务的隔离性和一致性以及数据库的一致性。  2)加锁是为了解决更新丢失问题更新丢失  两次更新同时进行,后一次更新覆盖了前一次更新的情况,更新丢失是数据没有保证一致性导致的。事务A查询余额,
Wesley13 Wesley13
4年前
MySQL(三,事务)
数据库事务特点ACID原子性,一致性,隔离性,永久性ACID是Atomic(原子性)Consistency(一致性)Isolation(隔离性)Durability(持久性)数据库事务说是如何实现的?1.通过预写日志方式实现的,redo和undo机制是数据库实现事务的基础2.redo日志用来在断电/数据
Wesley13 Wesley13
4年前
MySQL transaction
MySQLtransaction(数据库的事务)数据库事务(DatabaseTransaction),是指作为单个逻辑工作单元执行的一系列操作。要么完全执行,要么完全地不执行。ACID事务必须具备ACID四个特性原子性(Atomicity)原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚。一致性(Consistency)
Stella981 Stella981
4年前
ShardingSphere x Seata,一致性更强的分布式数据库中间件
日前,分布式数据库中间件 ShardingSphere 将Seata分布式事务能力进行整合,旨在打造一致性更强的分布式数据库中间件。背景数据库领域,分布式事务的实现主要包含:两阶段的XA和BASE柔性事务。XA事务底层,依赖于具体的数据库厂商对XA两阶段提交协议的支持。通常,XA协议通过在Prepare和Co
Wesley13 Wesley13
4年前
MySQL常见问题
事务四大特性原子性:不可分割的操作单元,事务中所有操作,要么全部成功;要么撤回到执行事务之前的状态一致性:如果在执行事务之前数据库是一致的,那么在执行事务之后数据库也还是一致的;隔离性:事务操作之间彼此独立和透明互不影响。事务独立运行。这通常使用锁来实现。一个事务处理后的结果,影响了其他事务,那么其他事务会撤回。
Wesley13 Wesley13
4年前
2、初探 ZooKeeper 技术内幕
分布式一致性“分布式”是大型系统实现高性能、高可用所常用的架构手段,本章节将概述“分布式一致性”的基本内容,以作为ZAB算法阐述的基础。分布式一致性的基本概念数据库系统的基础理论中,“事务”必须符合ACID,即为:Atomicity原子性、Consistency一致性、Isolation隔离性、Durabilit
Wesley13 Wesley13
4年前
Mysql事务,并发问题,锁机制
1、什么是事务事务是一条或多条数据库操作语句的组合,具备ACID,4个特点。原子性:要不全部成功,要不全部撤销隔离性:事务之间相互独立,互不干扰一致性:数据库正确地改变状态后,数据库的一致性约束没有被破坏持久性:事务的提交结果,将持久保存在数据库中2、事务并发会产生什么问题1)第一类丢失更新:在没有事务隔离的情况下,两个事务都同时
分布式架构基础
本文分享自天翼云开发者社区《》,作者:胡冲基础事务事务指的就是一个操作单元,在这个操作单元中的所有操作最终要保持一致的行为,要么所有操作都成功,要么所有的操作都被撤销本地事务本地事物其实可以认为是数据库提供的事务机制(ACID原则)分布式事务分布式事务指事