本地事务,分布式事务(Seata)

news2024/10/5 21:24:51

本地事务

四大特性ACID
A:原子性(Atomicity):事务是不可分割的最小操作但愿,要么全部成功,要么全部失败
C:一致性(Consistency):事务完成时,必须使所有数据都保持一致状态
l:隔离性(Isolation):数据库系统提供的隔离机制,保证事务在不受外部并发操作影响的独立环境下运行
D:持久性(Durability):事务一旦提交或回滚,它对数据库中的数据的改变就是永久的
!
并发事务

1.脏读:一个事务读到另一个事务还没提交的数据
2.不可重复读:一个事务先后读取同一条记录,但两次读取的数据不同
3.幻读:一个事务按照条件查询数据时,没有对应的数据行,但是再插入数据时,又发现这行数据已经存在

并发事务隔离级别:

隔离级别脏读不可重复读幻读
Read uncommitted(读未提交)
Read committed(读已提交)×
Repeatable Read(默认)××
Serializable×××

Serializable 性能最低;Read uncommitted 性能最高,数据安全性最差
查看事务隔离级别:
SELECT @@TRANSACTION_ISOLATION;
设置事务隔离级别:
SET [ SESSION | GLOBAL ] TRANSACTION ISOLATION LEVEL {READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SERIALIZABLE };
SESSION 是会话级别,表示只针对当前会话有效,GLOBAL 表示对所有会话有效

分布式事务

CAP定理


Consistency(一致性)
Availability(可用性)
Partition tolerance (分区容错性)
这三个指标不可能同时做到。这个结论就叫做 CAP 定理。
在P一定会出现的情况下,A和C之间只能实现一个

BASE理论是对CAP的一种解决思路,包含三个思想:
1.基本可用:分布式系统在出现故障时,允许损失部分可用性,即保证核心可用。
2.软状态:在一定时间内,允许出现中间状态,比如临时的不一致状态。
3.最终一致性:然无法保证强一致性,但是在软状态结束后,最终达到数据一致。

AP模式:各子事务分别执行和提交,允许出现结果不一致,然后采用弥补措施恢复数据即可,实现最终一致

CP模式:各个子事务执行后互相等待,同时提交,同时回滚,达成强一致。但事务等待过程中,处于弱可用状态。
Seata官网地址
http://seata.io/

Seata

事务协调者 事务管理器 资源管理器

Seata基于上述架构提供了四种不同的分布式事务解决方案:

  • XA模式:强一致性分阶段事务模式,牺牲了一定的可用性,无业务侵入
  • TCC模式:最终一致的分阶段事务模式,有业务侵入
  • AT模式:最终一致的分阶段事务模式,无业务侵入,也是Seata的默认模式
  • SAGA模式:长事务模式,有业务侵入
    未完…

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

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

相关文章

[架构之路-188]-《软考-系统分析师》-3-操作系统 - 图解页面替换算法LRU、LFU

目录 一、内存置换算法的缘由 二、算法详解 2.1 最佳页面置换算法(OPT) 》 理论上的最优,实际无法保证 2.2 先进先出置换算法(FIFO)-- 按加载时间/最早访问时间排序 2.3 最近最久未使用的置换算法(L…

JDK、JRE 和 JVM 之间的区别

虚拟机 JVM(Java Virtual Machine)是一个抽象机器。之所以称为虚拟机,是因为它在物理上并不存在。它是一个规范,它提供了一个可以在其中执行 Java 字节码的运行时环境。它还可以运行那些用其他语言编写并编译为 Java 字节码的程序…

c++详解之右值引用

右值引用: 右值引用是C11引入的一个新特性,它允许我们显式地将一个表达式标记为右值,从而可以使用移动语义进行优化。 在C中,每个表达式都是要么是左值,要么是右值。左值是指可以取地址的表达式,例如变量…

linux 系统下gcc

linux c gcc gcc编译可以执行4步骤:预处理、编译、汇编、链接 预处理 gcc -E hello.c----->hello.i 展开宏、头文件,替换条件编译,删除注释、空行、空白 编译 gcc -S hello.i------>hello.s 检查语法规范 汇编 gcc -c hello.…

网络安全行业就职岗位有哪些?

网络安全作为目前最火的行业之一,它的细分方向很多。下面介绍一下网络安全主要的方向岗位有哪些,以及职责是什么? 一、安全规划与设计方向 岗位名称:系统安全需求分析师。 岗位职责:负责对目标对象需要达到的安全目标…

DIN11 FVI频率脉冲信号转电压电流信号隔离转换模块变换器

主要特性 将单位脉冲信号转换成直流电压或电流信号。 精度等级:0.1 级、0.2 级、0.5 级。产品出厂前已检验校正,用户可以直接使用。 国际标准信号输入: 0-5KHz/0-10KHz/1-5KHz等 0-5V/0-10V/1-5V 等电压信号,0-10mA/0-20mA/4-20mA 等电流信号。 …

新港转债,百洋转债上市价格预测

新港转债 基本信息 转债名称:新港转债,评级:AA-,发行规模:3.69135亿元。 正股名称:新中港,今日收盘价:8.67元,转股价格:9.18元。 当前转股价值 转债面值 / 转…

Java设计模式-代理模式

简介 代理模式是一种结构型设计模式,它可以让我们通过一个代理对象来访问一个真实的目标对象,从而实现对目标对象的功能扩展或保护。代理模式的主要角色有三个: 抽象主题(Subject):定义了真实主题和代理主…

Prompt 技巧指南-让 ChatGPT 回答准确十倍!

出品人:Towhee 技术团队 作者:张晨 随着 ChatGPT 等大型语言模型 (LLM)的兴起,人们慢慢发现,怎么样向 LLM 提问、以什么技巧提问,是获得更加准确的回答的关键,也由此产生了提示工程这个全新的领域。 提示工…

JavaScript实现输入班级人数和成绩后,输出总成绩、平均成绩、最高分、最低分的代码

以下为实现输入班级人数和成绩输出总成绩、平均成绩、最高分、最低分的代码和运行截图 目录 前言 一、实现输入班级人数和成绩,输出总成绩、平均成绩、最高分、最低分的代码 1.1 运行流程及思想 1.2 代码段 1.3 JavaScript语句代码 1.4 运行截图 前言 1.若有…

JavaWeb《后端内容:1.Tomcat--Servlet--Thymeleaf》

目录 1. 基础概念 1.1 BS架构和CS架构 1.2 Tomcat图解 2.TomCat 2.1 IDEA配置web项目和tomcat 2.2 idea启动TomCat因为端口号失败的问题 3.Servlet使用流程 3.1 Servlet简单图解 3.2 Servlet导入依赖 3.3 编写Servlet和add.html 3.4 试着使用Jdbc和Dao层连接水果库存…

超细Redis(一)

目录 概述 Redis是什么? Redis能干嘛? 特性 如何学习 Linux安装 测试性能 概述 Redis是什么? Redis (Remote Dictionary Server),即远程字典服务 是一个开源使用ANSI C语言编写、支持网络、可基于内存亦可持…

阿里版ChatGPT——通义千问,开箱初体验

所有行业、所有应用、所有服务都值得基于新型人工智能技术重做一遍,在带来创造性客户体验的同时,生产范式、工作范式、生活范式也将发生变化。——阿里集团董事会主席兼CEO 张勇 2023阿里云峰会上,通义千问大语言模型对外发布,宣称…

【语义分割】LinkNet 从0到1 和代码实现

文章目录 前言1.网络结构1.1 网络结构示意图1.2 创建LinkNet模型 2.代码 前言 已经有了U-net了,为什么需要linkNet? unet见这个文章【语义分割】unet结构和代码实现:https://blog.csdn.net/weixin_40293999/article/details/129648032 它引入了resNet&a…

“SDL 入门指南:了解 SDL,快速上手 SDL 的安装和配置”——VS2022

前言 欢迎来到小K的SDL专栏第一小节,本节为大家介绍一下SDL是什么,能做什么,可以在哪些平台运行以及SDL的安装和VS2022配置SDL、导出模板、cmake运行SDL,同时我也会在资源里为大家上传SDL2.26的安装包,为在github上下载…

扫地机洗地机语音芯片ic一体方案 WTV多功能语音芯片

​随着智能家居的快速普及,扫拖一体机语音芯片ic逐渐成为了家庭清洁的必备之物。在智能家居、商业清洁服务、医院清洁服务、办公室清洁等领域得到广泛应用;而语音芯片方案的应用让清洁机器设备使用起来更加方便和智能化。 编辑搜图 目前大多数扫地机厂家…

2023/5/4总结

刷题&#xff1a; 第二周任务 - Virtual Judge (vjudge.net) 这一题用到了素筛,然后穷举即可 #include<stdio.h> #define Maxsize 500000 int a[Maxsize]; long long b[Maxsize]; long long max0; int sushu() {a[0]a[1]0;int i,j,k;for(i2,k0;i<Maxsize;i){if(a[i…

jeecgboot online代码生成 一对多

首先把前后端环境都起起来&#xff0c;此处略 点击online表单开发&#xff0c;设计主附表&#xff0c;表示一对多(一对一)关系&#xff0c;“一”对应主表&#xff0c;“多”对应附表&#xff0c;如图 表设计完成&#xff0c;点击同步可直接在数据库中生成数据表。 附表注意…

卢北辰:数据点亮梦想,能力驱动人生 | 提升之路系列(九)

导读 为了发挥清华大学多学科优势&#xff0c;搭建跨学科交叉融合平台&#xff0c;创新跨学科交叉培养模式&#xff0c;培养具有大数据思维和应用创新的“π”型人才&#xff0c;由清华大学研究生院、清华大学大数据研究中心及相关院系共同设计组织的“清华大学大数据能力提升项…

今天的事务的基础上继续找出错点

今天的事务的基础上继续找出错点 2023-05-05 08:21:40.362 ERROR 5560 --- [nio-8080-exec-7] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested…