java中事务一致性学习及其解决方案
事务一致性
- 事务一致性
- 1、特点
- 2、解决方案:
- (1)本地事务
- (2)分布式事务
事务一致性
1、特点
(1)本地事务:只能控制自己的回滚,控制不了其他事务的回滚
(2)分布式事务:最大原因是网络原因+分布式机器
2、解决方案:
(1)本地事务
①、在方法上使用import org.springframework.transaction.annotation.Transactional; @Transactional
开启事务
②、@Transactional的参数介绍:
@Transactional(propagation = Propagation.REQUIRED,timeout = 30)
propagation传播行为:Propagation.REQUIRED
传播,比如下面的aservice的a方法传播到bservice的b方法;Propagation.REQUIRES_NEW
比如下面的cservice的c方法开启自己的事务
timeout超时;
③、注意:因为本地事务是使用代理对象来控制的,所以如果是同一个service里面的,b方法跟c方法都设置无效,都会跟a方法保持一致
解决:使用代理对象来控制
步骤:
引入依赖,内部引入了aspectj
在启动类上加入@EnableAspectJAutoProxy注解,开启aspectj动态代理(即使没有接口,也可以创建动态代理)
代码使用,代理service转为abc同在的OrderService
(2)分布式事务
了解:CAP定理、raft算法
解决方案:2PC模式(不常用)、TCC模式、Seata
这里主要介绍下Seata的使用:
1)Seata AT自动模式,每个微服务得连接库都创建UNDO_LOG表
2)下载软件包启动服务
3)springboot服务中集成Seata
使用@GlobalTransactional
注解在业务方法上:
4)总结
java中事务一致性学习及其解决方案相关推荐
- 计算价格, java中浮点数精度丢失的解决方案
计算价格, java中浮点数精度丢失的解决方案 转载于:https://www.cnblogs.com/gloryhope/p/9896719.html
- java中转义字符的学习---(多看几遍就会了系列)
java中转义字符的学习-(多看几遍就会了系列) java中常见的转义字符– 符号 含义 \n 换行 \t 制表符 \r 回车 \b 退格 代码演示: public class a {public s ...
- java初学者指南_企业Java中事务隔离级别的初学者指南
java初学者指南 介绍 基于ACID事务属性的关系数据库强一致性模型. 在本文中,我们将阐明对资源本地事务和JTA事务使用不同的事务隔离级别和各种配置模式的背后原因. 隔离和一致性 在关系数据库系统 ...
- 企业Java中事务隔离级别的初学者指南
介绍 基于ACID事务属性的关系数据库强一致性模型. 在本文中,我们将阐明对资源本地事务和JTA事务使用不同的事务隔离级别和各种配置模式的背后原因. 隔离和一致性 在关系数据库系统中,原子性和持久性是 ...
- java中事务的管理
什么是事务: 事务,就是一组操作数据库的动作集合. 一组处理步骤或者全部发生或者一步也不执行,我们称该组处理步骤为一个事务.当所有的步骤像一个操作一样被完整地执行,我们称该事务被提交.由于其中的一部分 ...
- Java中事务的处理全解析
ava的事务处理,如果对数据库进行多次操作,每一次的执行或步骤都是一个事务.如果数据库操作在某一步没有执行或出现异常而导致事务失败,这样有的事务被执行有的就没有被执行,从而就有了事务的回滚,取消先前的 ...
- Java中的equals学习小结
Java中的equals是十分重要的,和= =要区别开来,最近在看孙卫琴的JAVA面向对象编程一书,觉得对其阐述写的不错,所以现在小结其 主要内容,而且要将 = =和 equals列为重要的对比概念来 ...
- java中事务的介绍
2019独角兽企业重金招聘Python工程师标准>>> java的事务处理,如果对数据库进行多次操作,每一次的执行或步骤都是一个事务.如果数据库操作在某 一步没有执行或出现异常而导致 ...
- Java中字符串的学习(一)String类的概述及常见方法使用
转载请注明出处http://www.cnblogs.com/devtrees/p/4347079.html (拓展:Api:编程语言对外给我们提供的应用程序接口.) 一.概述: 我们平时上网发帖,帖子 ...
最新文章
- java cad polyline_CAD中的各种Polyline
- 【实用】ABAP“FOR ALL ENTRIES”的Hints 优化
- Python面试中需要注意的几点事项!
- 乔春洋:品牌管理创新
- Easyconnect mac版本下载地址
- Python中修饰器的定义与使用
- Nginx模块Lua-Nginx-Module学习笔记(二)Lua指令详解(Directives)
- 矩阵运算_迹的相关性质
- Spring框架学习---Spring Framework下篇
- 华为认证考试HCIA H12-811 Datacom数通考试真题题库【带答案刷题必过】【第二部分】
- Axure RP 8 Pro 破解版软件安装包
- 尔雅 科学通史(吴国盛) 个人笔记及课后习题 2018 第三章 中古时代的欧洲和阿拉伯
- 科学计算机开多次方根号,计算器开多次方怎么操?
- python无法打开微信登录_如何让你的微信登录界面地球转起来(利用python实现)...
- Python Qt6快速入门-嵌入PyQtGraph图表
- 社会信用编码的验证(18位)
- Unity中国象棋(二)——走棋
- catia导出运动html,CATIA使用DMU生成运动轨迹包络面 | 坐倚北风
- Docker原生网络、自定义网络、Docker容器通信、跨主机容器网络
- linux中磁盘分区命令是什么,linux中创建磁盘分区的命令是什么
热门文章
- 风控基础指标之决策树的特征选择
- 3GPP TS 29244-g30 中英文对照 | 5.4.15 Packet Rate enforcement
- 正使用其他防病毒提供程序
- 小八——WebGL心路历程(1),从一个原生的webGL程序粗放认识webGL
- 安卓加密软件_【winhex/Xways实战应用】安卓QQ卸载后的手工恢复实战
- mysql中的包含与被包含
- se(3)-TrackNet: Data-driven 6D Pose Tracking by Calibrating Image Residuals in Synthetic Domains
- 计算机三级数据库高级查询
- 百度、高德离线地图SDK开发工具,局域网内离线地图开发环境
- 支付宝更新大变样!我太蓝了,资源更新提示