网站首页 > 博客文章 正文
考察目的
这个问题考察难度不算大,考察4年以上Java开发经验的同学。
分布式事务主要涉及到跨库事务处理问题,除了考察求职者对这方面知识的了解以外,还想了解一下求职者的实际处理经验。
问题分析
通常情况下,传统的关系型数据库只能保证单个数据库中多个数据表的事务特性。
一旦多个SQL操作涉及到多个数据库,这类的事务无法解决跨库事务问题。
在传统架构下,这种问题出现的情况非常少,但是在分布式微服务架构中,分布式事务的问题变得更加突出。
以电商项目为例,假设我们要实现电商系统中的支付功能,它的实现流程如下。
在微服务架构中,应用被拆分成以业务模块为单元的服务,并且每个服务有自己的数据库系统。
当用户发起支付时,会涉及到以下几个事务操作:
- 创建支付订单
- 从资金服务中扣除余额
- 从红包服务中扣除余额
- 更新支付结果
这是四个典型的事务操作,而且这些操作分别属于不同的数据库,最终期望的结果是希望这三个服务所对应的数据是一致的,很显然传统的事务无法解决这个问题!
因此就产生了分布式事务的问题,所谓分布式事务,就是事务具有分布式特性,简单理解就是如何实现多个跨数据库的小事务组成的大事务的ACID特性。
下面来看看高手的回答。
高手:
分布式事务是指存在多个跨库事务的事务一致性问题,或者是指在分布式架构下由多个应用节点组成的多个事务之间的事务一致性问题。
目前主流的分布式事务解决方案有两种
- 一种是基于XA协议实现的强一致性事务方案,比如Atomikos、Seata中的XA事务模型。
基于CAP理论可以知道,如果要保证分布式事务的强一致性,就必然会带来性能的影响从而影响到可用性。
所以强一致性事务性能会比较低。 - 另一种是基于BASE理论下的弱一致性事务解决方案,比如TCC事务模型、基于可靠性消息的最终一致性方案、Seata的Saga事务模型等。
最终一致性事务损失了数据的强一致性,通过异步补偿的方式达到数据的最终一致。
因此在性能上比较好,适用于并发量比较高的场景。
总结
大家知道怎么回答了吗?
如果你喜欢我的作品,记得点赞收藏加关注哦
需要高手面试文档合集(附赠大厂内部十万字面试文档)或者有不懂的技术面试题想咨询的小伙伴可以后台私信发送【Mic】或者直接jia\ /:mic6369。
- 上一篇: 分布式ActiveMQ面试题专题及答案
- 下一篇: Java开发岗面试宝典:分布式相关问答详解
猜你喜欢
- 2025-03-11 震惊!Redis精选高频29问面试题就这样分享出来了
- 2025-03-11 某金服面试:Seata分布式事务一致性锁机制如何设计的?
- 2025-03-11 五面阿里技术专家岗,已拿offer,这些面试题你能答出多少
- 2025-03-11 10次面试9次被刷?吃透这500道大厂Java高频面试题后,怒斩offer
- 2025-03-11 Spring Cloud(十):消息中心篇-Kafka经典面试题,你都会吗?
- 2025-03-11 110 个主流 Java 组件和框架整理,常用的都有,建议收藏!!
- 2025-03-11 Redis 常见面试问题总结和答案
- 2025-03-11 MySQL 经典面试题分享,这么详细的题解还怕背不下来?!
- 2025-03-11 最新最全linux c/c++服务器后台开发面试题合集
- 2025-03-11 蚂蚁金服面试题(附答案)建议收藏:经典面试题解析
你 发表评论:
欢迎- 376℃手把手教程「JavaWeb」优雅的SpringMvc+Mybatis整合之路
- 370℃用AI Agent治理微服务的复杂性问题|QCon
- 364℃初次使用IntelliJ IDEA新建Maven项目
- 356℃Maven技术方案最全手册(mavena)
- 353℃安利Touch Bar 专属应用,让闲置的Touch Bar活跃起来!
- 351℃IntelliJ IDEA 2018版本和2022版本创建 Maven 项目对比
- 350℃InfoQ 2024 年趋势报告:架构篇(infoq+2024+年趋势报告:架构篇分析)
- 346℃从头搭建 IntelliJ IDEA 环境(intellij idea建包)
- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)