【深入浅出Seata原理及实战】「入门基础专题」带你透析认识Seata分布式事务服务的原理和流程(1)
分布式事务的背景 随着业务的不断发展,单体架构已经无法满足我们的需求,分布式微服务架构逐渐成为大型互联网平台的首选,但所有使用分布式微服务架构的应用都必须面临一个十分棘手的问题,那就是“分布式事务”问题。 在分布式微服务架构中,几乎所有业务操作都需要多个服务协作才能完成。对于其中的某个服务而言,它的 ... »
分布式事务的背景 随着业务的不断发展,单体架构已经无法满足我们的需求,分布式微服务架构逐渐成为大型互联网平台的首选,但所有使用分布式微服务架构的应用都必须面临一个十分棘手的问题,那就是“分布式事务”问题。 在分布式微服务架构中,几乎所有业务操作都需要多个服务协作才能完成。对于其中的某个服务而言,它的 ... »
大家好,我是哪吒。 三分钟你将学会: MongoDB连接池的使用方式与常用参数 查询五步走,能活九十九? MongoDB索引与MySQL索引有何异同? MongoDB事务与ACID 什么是聚合框架? 在最开始接触MongoDB的时候,是通过 MongoDatabase database = new ... »
问题描述 事务设置手动回滚:TransactionAspectSupport.currentTransactionStatus().setRollbackOnly() 代码需要返回比较友好的提示,但try…catch了,事务就不会回滚了,所以在catch中设置手动回滚,但每次执行完就抛出异常 202 ... »
目录 什么是嵌套事务 案例 什么是嵌套事务 嵌套事务其实是对数据库SavePoint概念的Java操作版封装,什么是SavePoint参考我另一篇文章:https://www.likecs.net/article/272004.htm SavePoint是数据库事务中的一个概念, 可以将 »
目录 什么是SavePoint 语法 重要操作 什么是SavePoint SavePoint是数据库事务中的一个概念, 可以将整个事务切割为不同的小事务, 可以选择将状态回滚到某个小事务发生时的样子, 语法 定义保存点的语法如下: SAVEPOINT 保存点的名称; 当我们想回 »
目录 spring开启声明式事务 导入依赖 配置类文件 业务逻辑编写 测试代码 总结 spring开启声明式事务 导入依赖 pom.xml <dependencies> <!-- https://mvnrepository.com/artif »
目录 事务简介 如何使用事务 事务语法 API 区别 实际使用 事务调优 时间限制 oplog 大小限制 事务简介 事务是数据库中处理的逻辑单元,每个事务中包括一个或多个数据库操作,既可以是读操作,也可以是写操作。 ACID 是一个“真正”事务所需要具备的一组属性集合,指的是原子 »
目录 一、声明式全局事务 二、@GlobalTransactional 注解如何被识别? 2.1 运行环境 2.2 功能-注入事务执行失败处理器FailureHandler 2.3 功能-构建全局事务扫描器GlobalTransactionScanner 三、小结: 一、声明式全局事务 »
目录 一、配置文件 1、Redis 的网络相关配置 2、Redis的常规配置 3、Redis的安全配置 二、数据持久化 1、RDB 2、AOF 三、事务 1、multi 2、exec 3、discard 4、watch 5、unwatch 总结 一、配置文件 Redis的配置 »
目录 前言 Spring事务原理 Spring事务失效场景 1. 抛出检查异常 2. 业务方法本身捕获了异常 3. 同一类中的方法调用 4. 方法使用 final 或 static关键字 5. 方法不是public 6. 错误使用传播机制 7. 没有被Spring管理 8. 多线程 总结 »
事务是关于原子性的。原子性的概念是指可以把一些事情当做一个不可分割的单元来看待。从数据库的角度看,它是指应全部执行或全部不执行的一条或多条语句的最小组合。为了理解事务的概念,需要能够定义非常明确的边界。事务要有非常明确的开始和结束点。SqlServer中的每一条select、insert、updat »
Saga 模式 Saga 最初出现在1987年Hector Garcaa-Molrna & Kenneth Salem发表的一篇名为《Sagas》的论文里。其核心思想是将长事务拆分为多个短事务,借助Saga事务协调器的协调,来保证要么所有操作都成功完成,要么运行相应的补偿事务以撤消先前完成的工作,从 ... »
前言 我们都知道 MySQL 实现了 SQL 标准中的四个隔离级别,但是具体是如何实现的可能还一知半解,本篇博客将会从代码层面讲解隔离级别的实现方式,下面进入正题。 事务 考虑这样一个场景:博主向硝子酱的微信转了 520 块钱,在余额充足的正常情况下博主的账户余额会少 520 块,而硝子酱则会多 5 ... »
目录 一、@EnableTransactionManagement工作原理 二、Spring事务基本执行原理 四、Spring事务传播机制 五、Spring事务传播机制分类 六、Spring事务强制回滚 七、TransactionSynchronization 一、@EnableTrans »
目录 Spring事务管理 环境搭建 标准配置 声明式事务 总结 SqlSessionFactory XML中构建SqlSessionFactory 获得SqlSession的实例 代码实现 作用域(Scope)和生命周期 SqlSessionFactoryBuilder(构造器) Sq »
目录 一. 事务的业务场景 二. 事务的使用 三. 事务的特性(ACID) 1. 原子性(Atomicity) 2. 一致性(Consistency) 3. 持久性(Durability) 4. 隔离性(Isolation) 四. 事务并发异常 1. 脏读 2. 不可重复读 3. 幻读 四 »
1、Seata 简介 1.1 Seata是什么 Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。AT模式是阿里首推的模式,阿里云上有商用版本的GTS(Gl ... »
目录 Pom依赖 application.yml 多数据源配置 MasterDataSourceConfig ClusterDataSourceConfig 启动类 使用 实现跨数据源事务 Pom依赖 <parent> <groupId>org.sp »
目录 前言 一、什么是数据库事务 二、事务并发带来的4类问题 三、事务4种隔离级别 四、Mysql演示4种隔离级别 总结 参考文章: 前言 如何控制并发是数据库领域中非常重要的问题之一,MySQL为了解决并发带来的问题,设计了事务隔离机制、锁机制、MVCC机制,用一整套机制来解决并发问题, »
目录 事务挂起和事务恢复源码解读 事务挂起源码 suspend(transaction) newTransactionStatus() doBegin() 事务恢复 所以 事务挂起和事务恢复源码解读 在学习spring事务的时候,一定会涉及到一个概念,无法避免的,就是事务挂起和事务恢复 »