SpringCloud面试题——分布式事务

一:什么是分布式事务?

分布式事务是指在分布式系统中涉及到多个数据库或多个应用程序之间的事务处理,这些数据库或应用程序可能分布在不同的物理节点上,甚至可能位于不同的地理位置。在分布式事务中,需要确保所有参与者的事务操作都能够保持一致性,即所有参与者的事务要么全部提交成功,要么全部回滚。

二:常见的分布式事务有哪些?

分布式事务的目的是保证分布式系统中的多个参与方的数据能够保证一致性。即所有参与者,在一次写操作过程中要么都成功,要么都失败。至于这个一致性到底是怎样的一致性,是强一致性、还是最终一致性,不同的分布式事务方案其实达到的效果并不相同。

三:什么是Seata?他有哪几种模式?

Seata是一个阿里开源的分布式事务解决方案(Simple Extensible Autonomous Transaction
Architecture),用于在分布式系统中实现分布式事务。它旨在简化分布式事务的开发和管理,帮助解决分布式系统中的数据一致性问题。
Seata目前支持4种模式,分别是:

  1. AT模式
  2. TCC模式
  3. Saga模式
  4. XA模式

四:seata原理

全局唯一的事务ID+三组件

  1. TC (事务协调者):维护全局和分支事务的状态,负责通知RM执行提交或回滚。
  2. TM(事务管理器):将不同的微服务组合起来一个完成的业务流程,职责是开始全局事务、提交或回滚全局事务。
  3. RM (资源管理器):具体的某个微服务为事务的分支,职责是执行每个分支事务的操作。
    在这里插入图片描述

五:一次分布式事务的大致流程

  1. TM在接收到用户的下单请求后,会先调用TC创建一个全局事务,并且从TC获取到他生成的
    XID
  2. TM开始通过RPC/Restiali调用各个RM,调用过程中需要把XID同时传递过去。
    在这里插入图片描述
  3. RM通过其接收到的XID,将其所管理的资源且被该调用锁使用到的资源注册为一个事务分支
    在这里插入图片描述
  4. 当该请求的调用链全部结束时,TM根据本次调用是否有失败的情况,如果所有调用都成
    功,则决议Commit,如果有超时或者失败,则决议Rollback。
  5. TM将事务的决议结果通知TC,TC将协调所有RM进行事务的二阶段动作,该回滚回滚,该
    提交提交。
    在这里插入图片描述

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

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

相关文章

PPT插件-好用的插件-图形缩放-大珩助手

图形缩放 包括适合屏幕、适合宽度、适合高度、水平翻转、垂直翻转、指定角度,可同时对多个形状进行操作 适合屏幕 一键设置图像、文本、形状的长宽尺寸与当前幻灯片一致 适合宽度 一键设置图像、文本、形状的宽度尺寸与当前幻灯片一致 适合高度 一键设置图像…

智能优化算法应用:基于驾驶训练算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于驾驶训练算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于驾驶训练算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.驾驶训练算法4.实验参数设定5.算法结果6.参考…

DDOS攻击方式有哪些,要如何防护

DDOS攻击我们也称之为流量攻击,分布式拒绝服务攻击(英文意思是Distributed Denial of Service,简称DDOS)于不同位置的多个攻击者同时向一个或数个目标发动攻击,或者一个攻击者控制了位于不同位置的多台机器并利用这些机器对受害者…

23.12.15 《CLR via C#》 笔记8

第十一章 事件 事件是在类中定义的一种成员,定义了事件成员的类型可以: 方法能登记对事件的关注方法能注销对事件的关注事件发生时,登记了的方法会收到通知 设计要公开事件的类型 定义类型(容纳要发给事件接收者的附加信息&#…

Python3开发笔记(简洁版)

一、开发编辑器 1. pycharm 2. IDLE(Python自带软件) 方法:Microsoft Store搜索 Python 安装 二、数据类型 Python中有以下几种主要的数据类型: 数字(Numbers)、 字符串(Strings&#xff09…

el-select赋值对象是对象时,出现赋值与展示不一致问题

代码逻辑类似&#xff1a;module 是个object { "appId": "", "id": 65, "name": "" } <el-form :model"form"><el-form-item label"申请模块" ><el-select v-model"…

2023年全国职业院校技能大赛信息安全管理与评估赛项正式赛(模块一)GZ032

全国职业院校技能大赛高等职业教育组 信息安全管理与评估 任务书 模块一 网络平台搭建与设备安全防护 极安云科专注技能竞赛&#xff0c;包含网络建设与运维和信息安全管理与评估两大赛项&#xff0c;及各大CTF&#xff0c;基于两大赛项提供全面的系统性培训&#xff0c;拥…

【入坑指南】| OpenCV4.8 + CUDA + 扩展模块支持编译

大家好&#xff0c;今天给大家分享一下最新版本OpenCV4.8如何编译支持CUDA加速&#xff0c;实现深度学习模型部署速度提升。 软件版本支持 CMake3.13 或者以上版本 https://cmake.org/ VS2017专业版或者以上版本 3050ti CUDA11.3 OpenCV4.8源码包 https://github.com/opencv…

JVM虚拟机:各种类型的垃圾回收器参数总结

Parallel常用参数 -XX:SurvivorRatio-XX:PreTenureSizeThreshold 大对象到底多大-XX:MaxTenuringThreshold-XX:+ParallelGCThreads 并行收集器的线程数,同样适用于CMS,一般设为和CPU核数相同-XX:+UseAdaptiveSizePolicy 自动选择各区大小比例CMS常用参数 -XX:+UseConcMarkSwe…

ZooKeeper中bin目录4个脚本执行文件详解

ZooKeeper中bin目录4个脚本执行文件详解 ZooKeeper中bin目录中有如下4个可执行脚本&#xff1a; [rootpoc01 ~]# cd /opt/module/zookeeper-3.4.6/bin/ [rootpoc01 bin]# ls zkCleanup.sh zkCli.sh zkEnv.sh zkServer.sh这些脚本是 ZooKeeper 的一部分&#xff0c;用于管理…

三层交换的原理

一.三层交换技术 1.什么是三层交换机 要实现vlan间通信&#xff0c;就需要路由&#xff0c;解决办法要么是二层交换机加路由器形成单臂路由&#xff0c;要么就是直接使用三层交换机。 ①什么是单臂路由&#xff1a; ②单臂路由实现不同vlan间通信的原理&#xff1a; 路由器…

JVM的类的生命周期

目录 前言 1. 加载&#xff08;Loading&#xff09;&#xff1a; 2. 验证&#xff08;Verification&#xff09;&#xff1a; 3. 准备&#xff08;Preparation&#xff09;&#xff1a; 4. 解析&#xff08;Resolution&#xff09;&#xff1a; 5. 初始化&#xff08;Ini…

Ubuntu解决Failed to fetch https://... Could not resolve ‘某个源‘

在我使用sudo apt install subversion的时候遇到报错&#xff1a; 这个报错与Ubuntu操作系统的软件源配置文件有关系。错误提示显示无法解析“mirrors.shanhe.com”地址&#xff0c;这可能是由于更新软件包列表或下载软件包时出现的网络问题。 1.可以先更新一下源试试&#xf…

Vue 子传父 组件传参 defineEmits

defineEmits 属性&#xff1a;用于创建自定义事件&#xff0c;接收子组件传递过来的数据。 注意&#xff1a;如果自定义事件的名称&#xff0c;和原生事件的名称一样&#xff0c;那么只会触发自定义事件。 defineEmits 仅适用于 setup 语法糖&#xff0c;其它写法请见&#x…

SpringBoot+SSM项目实战 苍穹外卖(5)(Redis入门)

继续上一节的内容&#xff0c;本节学习Redis&#xff0c;并实现营业状态设置功能。 目录 Redis环境搭建Redis数据类型Redis常用命令在Java中操作Redis环境搭建java操作常见类型数据 店铺营业状态设置设置营业状态管理端查询营业状态用户端查询营业状态swagger区分管理端和用户端…

CSAPP/ICS 系统级IO笔记

文件描述符&#xff1a;内核&#xff08;kernel&#xff09;利用文件描述符&#xff08;file descriptor&#xff09;来访问文件。文件描述符是非负整数。打开现存文件或新建文件时&#xff0c;内核会返回一个文件描述符。读写文件也需要使用文件描述符来指定待读写的文件。 每…

Python移动未标注的图片数据集

Python移动未标注的图片数据集 前言前提条件相关介绍实验环境Python移动未标注的图片数据集情况一&#xff1a;有图&#xff0c;无标注文件代码实现输出结果 情况二&#xff1a;有图&#xff0c;有标注文件&#xff0c;但标注信息为空代码实现输出结果 情况一与情况二同时都考虑…

LabVIEW开发电能质量监测系统

LabVIEW开发电能质量监测系统 本研究基于LabVIEW开发了一个创新的电能质量监测系统&#xff0c;专注于暂态电能质量扰动信号的产生、分析与存储。该系统不仅模拟产生了电压骤降、电压波动、暂态振荡以及电压畸变等关键信号&#xff0c;还能够记录并存储这些扰动信号产生时的波…

Vmware Windows10安装Apache php

文章目录 一、下载必要的软件二、安装Apache三、安装php四、php连接Apache五、测试 一、下载必要的软件 Apache&#xff1a;https://www.apachelounge.com/download/ PHP&#xff1a;http://windows.php.net/download/ 二、安装Apache 将下载的压缩包解压&#xff0c;移动里…

使用 Java 获取电脑性能参数

Java内置的api 不能直接获取电脑的参数&#xff0c;需要借助第三方工具 oshi JavaSE 方式 所需要的 jar com.github.oshi:oshi-core:5.8.0、net.java.dev.jna:jna:5.9.0、net.java.dev.jna:jna-platform:5.9.0 org.slf4j:slf4j-api:1.7.21、org.slf4j:slf4j-simple:1.7.21 实…