Java面试题之分布式事务篇
一.题目介绍
1.题目来源
实际面试中遇到,形式的话有书面解答也有口述。
2.题目
1)你是如何看待分布式系统,微服务架构的?
2)你系统里是如何处理分布式事务的?
二.具体解答
1.你是如何看待分布式系统,微服务架构的?
分布式系统,微服务架构在16年开始火,但是真正的普及是18年,其中有多少公司尝试使用这种新的架构体系可能数不胜数,分布式系统与传统的单体集成系统的最大区别是分为多个业务子服务,这些子服务为一个大的业务服务,而这套系统就是所谓的分布式系统,很多的公司一般在拆分微服务的时候都是按业务拆分,比如订单服务,会员服务,商品服务等等,按具体的业务拆分成子系统即微服务,但是其带来的挑战也是巨大的,之前在同在一个数据库里表,经过拆分以后会分到不同的数据库里,这时候想要查询一条包含其他业务的数据就得依靠一个数据中心去提供查询,还有就是分布式系统面临的最大问题,分布式事务的处理问题。
2.系统里是如何处理分布式事务的?
服务拆分后都会面临服务与服务之间交叉业务的处理,比如购买一件商品,先扣库存服务里相应商品的数量如何再发起支付在支付服务中扣除银行卡中的商品金额,如果扣库存时失败,没有处理接着往下走就有可能出现“超买”的情况,使所以在微服务里我们得保持服务与服务之间数据的一致性,也就是保证服务于服务之间的事务正常,那让我们来看看有哪些解决方案:
1)常见得有2PC、TCC和基于Spring的事务消息,但是2PC和TCC过于笨重,而且对系统代码侵入性很高,很多事务得嵌套到代码里,如果后期进行替换,工作量有点大
2)还有就是目前的开源项目中最稳定的Seata
3)中间表,针对订单这种有中间业务流转的,我们可以使用中间表结合ACK机制去确保数据的一致性
4)使用RocketMQ,目前的RocketMQ是支持事务消息的
三.题后思考
关于分布式这块的面试中,面试官问得最多的就是如何解决分布式事务,用什么方法,还有没有更好的方法,题目是开放性的,所以结合工作中的遇到的问题和解决方案回答即可。
关注关注,主页更多java内容
Java面试题之分布式事务篇相关推荐
- Java 面试题大全(一篇足以,建议收藏)
Java 面试题大全 1.JDK 和 JRE 有什么区别? 2.== 和 equals 的区别是什么? 3.final 在 java 中有什么作用? 4.java 中的 Math.round(-1.5 ...
- BAT 大厂Java 面试题集锦之核心篇附参考答案
核心篇 数据结构与算法 网路:TCP/IP, HTTP 操作系统, 文件, shell, CPU, IO, epoll, 非阻塞IO, 进程/线程/协程,锁 HashMap, ConcurrentHa ...
- java面试题集中了好几篇的搜索的
1.servlet执行流程 客户端发出http请求,web服务器将请求转发到servlet容器,servlet容器解析url并根据web.xml找到相对应的servlet,并将request.resp ...
- 超详细的Java面试题汇总(基础篇+框架篇)
Java面试题汇总-基础篇 1.面向对象是什么? 答:面向对象是一种思想,世间万物都可以看做一个对象,这里只讨论面向对象编程(OOP),Java是一个支持并发.基于类和面向对象的计算机编程语言,面向对 ...
- Java jta 原理_分布式事务JTA实现Atomikos与Spring集成实践
Atomikos官网无法访问,不过Maven中央库中具atomikos包.Atomikos集成Spring,Hibernate,Mybatis网上文章比较多,本文是通过JavaSE的方式借用Sprin ...
- 2022年阿里高频Java面试题:分布式+中间件+高并发+算法+数据库
又到了一年一度的金三银四,互联网行业竞争是一年比一年严峻,作为工程师的我们唯有不停地学习,不断的提升自己才能保证自己的核心竞争力从而拿到更好的薪水,进入心仪的企业(阿里.字节.美团.腾讯.....) ...
- 分布式事务篇——第二章:分布式事务解决之2PC剖析
前面已经学习了分布式事务的基础理论,以理论为基础,针对不同的分布式场景业界常见的解决方案有2PC. TCC.可靠消息最终一致性.最大努力通知这几种.本文主要着重剖析2PC的方案和落地!! 1.什么是2 ...
- java jta_JTA规范_分布式事务教程_田守枝Java技术博客
JTA规范事务模型 Java事务API(JTA:Java Transaction API)和它的同胞Java事务服务(JTS:Java Transaction Service),为J2EE平台提供了分 ...
- 备战2022年春季面试Java面试题库-数据库Mysql篇《收藏》
前言 本文主要涉及到的面试问题点比较多各种各样的,本文主要涉及到的是数据库Mysql,面试题我就把我常遇到的和一些出现频率比较多的问题整理出来了. 如果想要学习资料的小伙伴可以点击下面的链接交个朋友我 ...
- 分布式事务篇——第一章:分布式事务前言
做开发的同学,在一般的互联网公司会很少接触到分布式,甚至本地事务都不一定经常用,全是靠DB来做支持,或者通过Mybatis,一旦接触到分布式,就一定离不开核心点--分布式事务,本章就来唠唠看大厂这些分 ...
最新文章
- Linux命令:tail
- android资源适配
- 关于ST02看到SWAP红色的讨论
- Pandas与openpyxl库的 完美 融合!
- 【开源】NodeJS仿WebApi路由
- linux下php反编译apk,php反编译
- 在线教育如何应对流量洪峰?阿里云专家:上云+云数据库是最佳路径
- 带你认识9种常用卷积神经网络
- window下git,TortoiseGit安装,以及和github托管项目
- c++ protobuf中repeated类型使用——序列化
- 贪吃的九头龙(tyvj P1523)
- 在Mac上运行.exe文件
- UI设计从业者,怎样才能成为月薪过万的UI设计师?
- 墙里秋千墙外道。墙外行人,墙里佳人笑。笑渐不闻声渐悄。多情却被无情恼。
- 搜索引擎蜘蛛IIS日志200、304、404 含义
- 谈谈在项目过程中的发生争论与争吵
- 如何迁移操作系统到ssd固态硬盘?
- 即将举行的Live From Redmond免费网络广播讲座
- Visual Studio 2022 的下载
- Spring Boot中使用WebJars
热门文章
- delphi7文件服务器,使用Delphi7进行OPC服务器的开发.pdf
- VBS代码--很恶心的整人效果
- java zk_zk框架:zul文件,純Java或混合更好的性能
- cognos报表制作(三)Cube开发
- R大 关于 G1 算法原理的解释说明
- 全球国家(和地区)信息JSON数据
- YUV444,YUV420P,YUV420SP,YUV422P,YUV422SP,NV12,NV21,NV16,NV61等格式区分与存储简介
- 将运算放大器(运放)用作比较器
- 微机原理、计算机组成原理与计算机体系结构之间的关系
- WebRTC NAT穿透服务器 coturn服务搭建