九、Seata的AT模式

目录

    • 9.1 什么是弱一致性 ?
    • 9.2 Seata的弱一致性
    • 9.3 Seata的AT模式介绍
    • 9.4 AT模式流程图
    • 9.5 AT模式注意点
    • 9.6 全局锁的理解
      • 1、认识全局锁
      • 2、注册全局锁
      • 3、校验(获取)全局锁
      • 4、释放锁
      • 5、结论
    • 9.7 AT的多数据源场景

9.1 什么是弱一致性 ?

弱⼀致性舍弃了强⼀致性,表示允许在某个时间点 甚⾄某个时间段 主从节点的数据不⼀致性的情况。但是这种不⼀致性只是暂时的,但是数据最终会变的⼀致性。

9.2 Seata的弱一致性

seata的四种模式 除了XA模式是强⼀致性之外 其他的三种⽐如 Saga TCC AT 都属于弱⼀致性,但是除了这些弱⼀致性的解决⽅案之外,还有可以利⽤可靠消息队列实现最终⼀致性的效果等等

AT 是Seata强烈建议使用的方式,95%的人使用Seata都会使用AT模式

9.3 Seata的AT模式介绍

AT模式和XA模式差不多,是由XA模式演化⽽来的,是Seata推荐的⼀种分布式解决⽅案,AT模式最早来源于阿⾥中间件团队发布的TXC服务。 AT模式不再像XA那样,AT模式下数据库不需要⽀持XA协议。并且AT模式和XA模式从编码模型上⼏乎⼀样,可以这样说,会XA的编码 就会AT的编码。

9.4 AT模式流程图

在这里插入图片描述

9.5 AT模式注意点

9.6 全局锁的理解

1、认识全局锁

全局锁由表名和操作记录的主键 按照⼀定的规律组成。 seata的AT模式 全局锁保存在TC端(seata-server端) TC端保存全局锁可以在如下三个位置 redis mysql file(默认)

2、注册全局锁

RM 向TC注册分⽀事务,在注册分⽀事务之后,将会操作数据库修改数据,提交事务 之前,将会把修改的表和主键信息封装成全局锁,发送到TC服务器进⾏注册,如果TC服务器发现已经有这个主键 的全局锁 证明有其他事务正在执⾏这条数据 则会跑出全局锁冲突异常,客户端会循环等待并且重试

3、校验(获取)全局锁

提交本地事务时 先要获取这个全局锁,当能获取到全局锁 则会提交本地事务 如果全局锁被占⽤则表示有其他事务在操作这条数据。客户端等待 重试获取锁

4、释放锁

第⼆阶段是异步执⾏的,在TC向RM(客户端)发送 branch Commit请求后,客户端仅将分⽀提交信息插⼊内存列队中,可以理解为 如果第⼀阶段成功,第⼆阶段不出异常的情况下,第⼆阶段⼀开始就会释放全局锁,不会锁定到第⼆阶段执⾏结束才会释放全局锁

5、结论

全局锁将会被客户端持有到第⼆阶段的开始 所以性能不如本地事务⾼


9.7 AT的多数据源场景

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

社会人士可以考英语四六级吗?怎么考四六级

目录 一、社会人士能考英语四六级吗二、社会人士可以参加哪些英语等级考试第一.考个商务英语类证书第二.社会上比较认可的还有翻译证书第三.出国常用的英语凭证第四.职称英语.第五.PETS. 大学英语四六级是为提高我国大学英语课程的教学质量服务。那么社会人士能不能报考英语四六…

四. 基于环视Camera的BEV感知算法-BEVDepth

目录 前言0. 简述1. 算法动机&开创性思路2. 主体结构3. 损失函数4. 性能对比总结下载链接参考 前言 自动驾驶之心推出的《国内首个BVE感知全栈系列学习教程》,链接。记录下个人学习笔记,仅供自己参考 本次课程我们来学习下课程第四章——基于环视Cam…

双向长短期神经网络(Bi-LSTM)-多输入时序预测

目录 一、程序及算法内容介绍: 基本内容: 亮点与优势: 二、实际运行效果: 三、部分代码展示: 四、完整代码下载: 一、程序及算法内容介绍: 基本内容: 本代码基于Matlab平台编…

在 linux 服务器上安装Redis数据库

先打开我们的Linux服务器 终端执行 安装redis sudo yum install redis然后 他会提示你要占多少磁盘空间 例如 我这里是 1.7 M 没问题就 y 然后回车就可以了 然后 我们这里执行 redis-cli --version这样 就能看到版本了 然后 我们可以根据版本选择启动命令 使用systemctl命…

重要通知,事关校营宝新老用户,敬请知悉!

尊敬的校营宝用户,感谢您选择校营宝培训学校管理系统,我们的发展离不开您的支持鼓励,只要您选择校营宝,就是我们的终身客户,我们承诺给您终身的售后咨询服务! 校营宝培训学校管理系统是面向校外艺术类培训…

一个简单的设置,就能摆脱iPad音量键随方向变的困扰

新款iPad Air 5的发布和iPhone SE 3的评审可能是苹果本月最大的新闻,但该公司也悄悄发布了一项功能,自2010年发布第一款以来,iPad用户一直在等待:音量按钮现在在横向模式下很有意义。让我们解释一下。 每台iPad侧面的音量按钮在人…

Linux之用户/组 管理

关机&重启命令 shutdown -h now立刻进行关机shutdown -h 11分钟后关机(shutdown默认等于shutdown -h 1) -h即halt shutdown -r now现在重新启动计算机 -r即reboot halt关机reboot重新启动计算机sync把内存数据同步到磁盘 再进行shutdown/reboot/halt命令在执行…

面试秘籍 | 测试工程师的简历该怎么写?

作为软件测试的垂直领域深耕者,面试或者被面试都是常有的事,可是不管是啥,总和简历有着理不清的关系,面试官要通过简历了解面试者的基本信息、过往经历等,面试者希望通过简历把自己最好的一面体现给面试官,…

TypeScript学习笔记归纳(持续更新ing)

文章目录 前言 二、TypeScript的优势体现在哪里? 1、执行时间上的区别 2、基础数据类型区别 3、TS优势 三、TypeScript的关键特性 四、TypeScript的类型系统 1、什么是类型注释? 2、类型系统核心 - 常用类型 1) 基本类型&#xff0…

从Maven初级到高级

一.Maven简介 Maven 是 Apache 软件基金会组织维护的一款专门为 Java 项目提供构建和依赖管理支持的工具。 一个 Maven 工程有约定的目录结构,约定的目录结构对于 Maven 实现自动化构建而言是必不可少的一环,就拿自动编译来说,Maven 必须 能…

设计模式 建造者模式 与 Spring Bean建造者 BeanDefinitionBuilder 源码与应用

建造者模式 定义: 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示主要作用: 在用户不知道对象的建造过程和细节的情况下就可以直接创建复杂的对象如何使用: 用户只需要给出指定复杂对象的类型和内容, 建造者模式负责按顺序创建复杂对象…

vue3 配置 @符号

config,ts 配置 有 爆红 安装 npm install 一下 然后 配置 路径提示功能 tsconfig.json 配置 路径提示功能 一共这两个路径配置

概率中的 50 个具有挑战性的问题 [05/50]:正方形硬币

一、说明 我最近对与概率有关的问题产生了兴趣。我偶然读到了弗雷德里克莫斯特勒(Frederick Mosteller)的《概率论中的五十个具有挑战性的问题与解决方案》)一书。我认为创建一个系列来讨论这些可能作为面试问题出现的迷人问题会很有趣。每篇…

软件测试工程师简历项目经验怎么写?--1000个已成功入职的软件测试工程师简历范文模板(含真实简历)

说到好的测试人员的简历,其实并没有什么标准。因为每个人的简历都是根据自己的个人情况、个人目标而编写的,所以只有合适的简历,没有什么所谓的好的简历。拿经历来说吧:做培训的时候,要给每一个学员辅导,教…

Django开发2

Django开发2 Django开发1.新建项目2.创建app3.设计表结构(django)4.在MySQL中生成表5.静态文件管理6.部门管理7.模板的继承8.用户管理8.1 初识Form1. views.py2.user_add.html 8.3 ModelForm(推荐)0. models.py1. views.py2.user_…

Spring5底层原理之BeanFactory与ApplicationContext

目录 BeanFactory与ApplicationContext BeanFactory ApplicationContext 容器实现 BeanFactory实现 ApplicationContext实现 ClassPathXmlApplicationContext的实现 AnnotationConfigApplicationContext的实现 AnnotationConfigServletWebServerApplicationContext的实…

系列一、MQ简介

一、MQ简介 1.1、概述 MQ(Message Queue),是一种提供消息队列服务的中间件,也称为消息中间件,是一套提供了消息(消息即数据,一般消息的体量不会很大)生产、存储、消费全过程的API软…

【计算机网络】网络层——IP协议

目录 一. 基本概念 二. 协议报文格式 三. 网段划分 1. 第一次划分 2. CIDR方案 3. 特殊的IP地址 四. IP地址不足 1. 私有IP和公网IP 2. DHCP协议 3. 路由器 4. NAT技术 内网穿透(NAT穿透) 五. 路由转发 路由表生成算法 结束语 一. 基本概念 IP指网络互连协议…

python时间处理方法和模块

在 Python 中,有一些内置的模块和库,可以帮助我们处理日期和时间的表示、计算和转换。 1. 时间模块(time) Python 的 time 模块提供了一系列函数来处理时间相关的操作。通过这个模块,可以获取当前时间、睡眠指定时间…