事务一致性

  • 事务一致性
    • 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方法保持一致
解决:使用代理对象来控制
步骤:

  1. 引入依赖,内部引入了aspectj

  2. 在启动类上加入@EnableAspectJAutoProxy注解,开启aspectj动态代理(即使没有接口,也可以创建动态代理)

  3. 代码使用,代理service转为abc同在的OrderService

(2)分布式事务

了解:CAP定理、raft算法
解决方案:2PC模式(不常用)、TCC模式、Seata
这里主要介绍下Seata的使用:
1)Seata AT自动模式,每个微服务得连接库都创建UNDO_LOG表
2)下载软件包启动服务

3)springboot服务中集成Seata

使用@GlobalTransactional注解在业务方法上:

4)总结

java中事务一致性学习及其解决方案相关推荐

  1. 计算价格, java中浮点数精度丢失的解决方案

    计算价格, java中浮点数精度丢失的解决方案 转载于:https://www.cnblogs.com/gloryhope/p/9896719.html

  2. java中转义字符的学习---(多看几遍就会了系列)

    java中转义字符的学习-(多看几遍就会了系列) java中常见的转义字符– 符号 含义 \n 换行 \t 制表符 \r 回车 \b 退格 代码演示: public class a {public s ...

  3. java初学者指南_企业Java中事务隔离级别的初学者指南

    java初学者指南 介绍 基于ACID事务属性的关系数据库强一致性模型. 在本文中,我们将阐明对资源本地事务和JTA事务使用不同的事务隔离级别和各种配置模式的背后原因. 隔离和一致性 在关系数据库系统 ...

  4. 企业Java中事务隔离级别的初学者指南

    介绍 基于ACID事务属性的关系数据库强一致性模型. 在本文中,我们将阐明对资源本地事务和JTA事务使用不同的事务隔离级别和各种配置模式的背后原因. 隔离和一致性 在关系数据库系统中,原子性和持久性是 ...

  5. java中事务的管理

    什么是事务: 事务,就是一组操作数据库的动作集合. 一组处理步骤或者全部发生或者一步也不执行,我们称该组处理步骤为一个事务.当所有的步骤像一个操作一样被完整地执行,我们称该事务被提交.由于其中的一部分 ...

  6. Java中事务的处理全解析

    ava的事务处理,如果对数据库进行多次操作,每一次的执行或步骤都是一个事务.如果数据库操作在某一步没有执行或出现异常而导致事务失败,这样有的事务被执行有的就没有被执行,从而就有了事务的回滚,取消先前的 ...

  7. Java中的equals学习小结

    Java中的equals是十分重要的,和= =要区别开来,最近在看孙卫琴的JAVA面向对象编程一书,觉得对其阐述写的不错,所以现在小结其 主要内容,而且要将 = =和 equals列为重要的对比概念来 ...

  8. java中事务的介绍

    2019独角兽企业重金招聘Python工程师标准>>> java的事务处理,如果对数据库进行多次操作,每一次的执行或步骤都是一个事务.如果数据库操作在某 一步没有执行或出现异常而导致 ...

  9. Java中字符串的学习(一)String类的概述及常见方法使用

    转载请注明出处http://www.cnblogs.com/devtrees/p/4347079.html (拓展:Api:编程语言对外给我们提供的应用程序接口.) 一.概述: 我们平时上网发帖,帖子 ...

最新文章

  1. java cad polyline_CAD中的各种Polyline
  2. 【实用】ABAP“FOR ALL ENTRIES”的Hints 优化
  3. Python面试中需要注意的几点事项!
  4. 乔春洋:品牌管理创新
  5. Easyconnect mac版本下载地址
  6. Python中修饰器的定义与使用
  7. Nginx模块Lua-Nginx-Module学习笔记(二)Lua指令详解(Directives)
  8. 矩阵运算_迹的相关性质
  9. Spring框架学习---Spring Framework下篇
  10. 华为认证考试HCIA H12-811 Datacom数通考试真题题库【带答案刷题必过】【第二部分】
  11. Axure RP 8 Pro 破解版软件安装包
  12. 尔雅 科学通史(吴国盛) 个人笔记及课后习题 2018 第三章 中古时代的欧洲和阿拉伯
  13. 科学计算机开多次方根号,计算器开多次方怎么操?
  14. python无法打开微信登录_如何让你的微信登录界面地球转起来(利用python实现)...
  15. Python Qt6快速入门-嵌入PyQtGraph图表
  16. 社会信用编码的验证(18位)
  17. Unity中国象棋(二)——走棋
  18. catia导出运动html,CATIA使用DMU生成运动轨迹包络面 | 坐倚北风
  19. Docker原生网络、自定义网络、Docker容器通信、跨主机容器网络
  20. linux中磁盘分区命令是什么,linux中创建磁盘分区的命令是什么

热门文章

  1. 风控基础指标之决策树的特征选择
  2. 3GPP TS 29244-g30 中英文对照 | 5.4.15 Packet Rate enforcement
  3. 正使用其他防病毒提供程序
  4. 小八——WebGL心路历程(1),从一个原生的webGL程序粗放认识webGL
  5. 安卓加密软件_【winhex/Xways实战应用】安卓QQ卸载后的手工恢复实战
  6. mysql中的包含与被包含
  7. se(3)-TrackNet: Data-driven 6D Pose Tracking by Calibrating Image Residuals in Synthetic Domains
  8. 计算机三级数据库高级查询
  9. 百度、高德离线地图SDK开发工具,局域网内离线地图开发环境
  10. 支付宝更新大变样!我太蓝了,资源更新提示