springboot多数据源---2事务

news2024/10/6 8:31:15

一、多数据源事务控制
在多数据源下,由于涉及到数据库的多个读写。一旦发生异常就可能会导致数据不一致的情况, 在这种情况希望使用事务
进行回退。
但是Spring的声明式事务在一次请求线程中只能使用一个数据源进行控制
但是对于多源数据库:
1.单一事务管理器(TransactionManager)无法切换数据源,需要配置多个TransactionManager。
2.@Transactionnal是无法管理多个数据源的。 如果想真正实现多源数据库事务控制,肯定是需要分布式事务。 这里指的是多源数据库事务控制的一种变通方式。
在这里插入图片描述
1. 只使用主库TransactionManger
使用主库事务管理器,也就是说事务中产生异常时,只能回滚主库数据。但是因为数据操作顺序是先主后从,所以分一下三种情况:

  1. 主库插入时异常,主库未插成功,这时候从库还没来及插入,主从数据是还是一致的
  2. 主库插入成功,从库插入时异常,这时候在主库事务管理器监测到事务中存在异常,将之前插入的主库数据插入,主从数据还是
    一致的
  3. 主库插入成功,从库插入成功,事务结束,主从数据一致。
    在这里插入图片描述
    在这里插入图片描述
    当然这只是理想情况,例外情况:
    4.从库插入之后出现异常, 只能回滚主库数据 ,从库数据是无法回滚的 , 数据将不一致。
    5.从库数据插入成功后,主库提交,这时候主库崩溃了,导致数据没插入,这时候从库数据也是无法回滚的。这种方式可以简单实现多源数
    据库的事务管理,但是无法处理上述情况。

2. 一个方法开启2个事务
spring编程式事务 :
在这里插入图片描述
spring声明式事务:
@Transactional

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/102268.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C#语言实例源码系列-设置桌面背景

专栏分享点击跳转>Unity3D特效百例点击跳转>案例项目实战源码点击跳转>游戏脚本-辅助自动化点击跳转>Android控件全解手册 👉关于作者 众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中…

36寸便携旅行小吉他怎么选?八款高性价比颜值的儿童初学女生新手入门吉他品牌推荐!

本期介绍民谣吉他里的36英寸的Mini桶型,主要适用于小孩或者喜欢带琴外出旅行的朋友们,也被称为儿童吉他或者旅行吉他。这些吉他基本上也是配备标准指板的,演奏体验与大吉他一样。相比桶型较大的吉他,其音量会 相对较小&#xff0c…

zibll子比主题6.7用户徽章功能详解及配置教程[V6.7新功能]

内容目录一、详细介绍二、效果展示1.部分代码2.效果图展示三、学习资料下载一、详细介绍 用户徽章功能是现在很多社交类网站和app必不可少的功能了,能有效的增加网站交互的趣味性。 zibll子比主题V6.7就更新了用户徽章功能,接下来我们就来了解一下这个…

[3D数据深度学习] (PC/服务器集群cluster)CPU内存/GPU显存限制及解决办法

[3D数据深度学习] (PC/服务器集群cluster)内存/显存参数设置1. 硬件配置推荐2. 深度学习流程及遇到的问题3. CPU内存限制及参数设置4. GPU显存限制及参数设置3D数据的深度学习目前研究远不如2D深度学习成熟,其中最大的一个原因之一就是收到硬…

【跨层注意力:多层次融合】

Multi-level features fusion via cross-layer guided attention for hyperspectral pansharpening (基于跨层注意力引导的多层次特征融合高光谱全色锐化) 近年来,卷积神经网络(CNN)在计算机视觉中的成功应用引起了人…

新手入门吉他买什么牌子好?有哪些值得推荐的吉他品牌,附上初学者吉他选购攻略!【避坑指南】

在选购吉他之前,大家必须提前了解的一些关于吉他的知识,提前做好功课,不怕挑选不到适合的吉他,新手入门吉他怎么选?怎么选到适合自己的吉他?带着这些问题在这里我将详细地给大家一一讲解,同时最…

如何做好客户精细化管理?

很多人都知道客户精细化管理的重要性,但并不是所有人都掌握客户精细化管理的科学方法。 目前,客户精细化管理最常用的方法是基于RFM模型的客户细分方法。 RFM分析是客户关系分析中一种简单实用客户分析方法,他将最近一次消费、消费频率、消…

Java项目:基于ssm智能餐厅管理系统

作者主页:源码空间站2022 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 本项目主要分为服务员、厨师、收银员、经理四种角色; 主要功能包括: 客户可以根据自己的要求去选择菜品,厨师…

23种设计模式的分类和应用场景总结【设计模式】

23种设计模式的分类和应用场景总结【设计模式】设计模式分类创建型模式结构型模式行为型模式设计模式的几种原则应用场景总结各种模式的详细介绍创建型模式设计模式分类 23种设计模式可以分为三大类:创建型模式、结构型模式和行为型模式。 创建型模式 &#x1f34…

(附源码)SSM高考志愿智能选择系统 毕业设计 134565

SSM高考志愿智能选择系统 摘 要 高中教育的普及使得每年高考人数攀升,与此同时,信息不对称会使部分考生处于劣势,造成获录学校或专业性价比不高、报录比偏低、复读率增高、考研热等问题。针对这些情况,本文设计并实现了高考志愿智…

【时钟识别】Hough变换指针式时钟识别【含GUI Matlab源码 2085期】

⛄一、简介 1 仪表示数识别流程 基于刻度准确定位的指针式仪表示数识别方法包括预处理、指针检测、刻度定位、油位计表盘中心拟合与仪表读数计算5个部分。该方法无需预先添加任何表盘信息,算法流程如图2所示。整个流程分为两步且同时进行——第1步,将油位计图像进行灰度化和边…

DPDK技术原理概述

DPDK 基本技术指标准的 DPDK 数据平面开发包和 I/O 转发实现技术,本次将概述该部分的主要技术原理。 1 技术原理与架构 由于采用软件转发和软件交换技术,单服务器内部的转发能力是 NFV 系统的主要性能瓶颈。在各类高速转发的 NFV 应用中,数…

赣货通全球桥接江西制造全球开花,贸易强国供应链出海江西在奋进

“赣货通全球”平台是什么? “赣货通全球”平台是江西制造进入全球供应链的数字贸易平台,平台免费为江西制造打造永不落幕线上国际化“赣品展”。核心的后台功能为企业用户提供大数据获客及营销功能,同时为企业提供贸易全流程的第三方外贸综合服务&…

Ubuntu18.04复现mmdetection3d

文章目录一、环境搭建二、测试demo三、数据预处理四、训练参考一、环境搭建 从零配置深度学习环境参考:ubuntu18.04 AnnacondaCUDA10.2CuDNN7.6.5使用anaconda创建虚拟环境 conda create -n open-mmlab3d python3.8 conda activate open-mmlab3d安装torch 先从官网…

自然语言处理竞赛相关比赛项目、比赛经验、工具、算力平台资源分享

本资源主要收录NLP竞赛经验贴、通用工具、学习资料等,本项目源于2020年7月一次竞赛的经历,当时在找参考资料时遇到了很多困难,包括内容分散、质量不高等。2021年3月开始更新本项目,志在帮助NLPer提升模型性能。2021年6月开放本项目…

大一Web课程设计 基于HTML家乡主题网页项目的设计与实现——中国牡丹之都山东菏泽(6页)

家乡旅游景点网页作业制作 网页代码运用了DIV盒子的使用方法,如盒子的嵌套、浮动、margin、border、background等属性的使用,外部大盒子设定居中,内部左中右布局,下方横向浮动排列,大学学习的前端知识点和布局方式都有…

MySQL高级【索引概述索引结构】

目录 索引概述 无索引演示:一种表没有索引的查找方式 有索引演示:以二叉树进行演示 索引的优缺点 索引结构 二叉树: B-Tree(多路平衡查找树) BTree树 Hash数据结构 索引概述 索引它是一种有序的数据结构&…

测开真的是测试工程师的发展终点吗?

前言 在一线大厂,没有测试这个岗位,只有测开这个岗位,即使是做业务测试,那么你的title也是测开。 所以想聊一聊测开的看法,但不代表这是正确的看法,仅供参考。 没来阿里之前我对测开的看法 一直以为专职…

Docker入门 --- 简单安装及部署

Docker的简单安装及部署 文章目录Docker的简单安装及部署一、Docker概述1. 什么是Docker2. Docker架构3. DockerHub4. Docker运行模式5. Docker和虚拟机的区别二、安装Docker1. 环境准备2. 安装3. 配置镜像加速器三、Docker服务、镜像、容器命令1. 服务(进程)相关命令2. 镜像相…

【大数据处理技术】「#2」Hive数据分析

文章目录操作Hive简单查询分析测试简单指令查询条数统计分析关键字条件查询分析以关键字的存在区间为条件的查询根据用户行为分析用户实时查询分析操作Hive 启动Hive在“hive>”命令提示符状态下执行下面命令: hive> use dbtaobao; # 使用dbtaobao数据库 hi…