Java面试题之分布式事务篇

简介: 关于分布式这块的面试中,面试官问得最多的就是如何解决分布式事务,用什么方法,还有没有更好的方法,题目是开放性的,所以结合工作中的遇到的问题和解决方案回答即可。

一.题目介绍


1.题目来源


实际面试中遇到,形式的话有书面解答也有口述。


2.题目


1)你是如何看待分布式系统,微服务架构的?


2)你系统里是如何处理分布式事务的?


二.具体解答


1.你是如何看待分布式系统,微服务架构的?


分布式系统,微服务架构在16年开始火,但是真正的普及是18年,其中有多少公司尝试使用这种新的架构体系可能数不胜数,分布式系统与传统的单体集成系统的最大区别是分为多个业务子服务,这些子服务为一个大的业务服务,而这套系统就是所谓的分布式系统,很多的公司一般在拆分微服务的时候都是按业务拆分,比如订单服务,会员服务,商品服务等等,按具体的业务拆分成子系统即微服务,但是其带来的挑战也是巨大的,之前在同在一个数据库里表,经过拆分以后会分到不同的数据库里,这时候想要查询一条包含其他业务的数据就得依靠一个数据中心去提供查询,还有就是分布式系统面临的最大问题,分布式事务的处理问题。


2.系统里是如何处理分布式事务的?


服务拆分后都会面临服务与服务之间交叉业务的处理,比如购买一件商品,先扣库存服务里相应商品的数量如何再发起支付在支付服务中扣除银行卡中的商品金额,如果扣库存时失败,没有处理接着往下走就有可能出现“超买”的情况,使所以在微服务里我们得保持服务与服务之间数据的一致性,也就是保证服务于服务之间的事务正常,那让我们来看看有哪些解决方案:


1)常见得有2PC、TCC和基于Spring的事务消息,但是2PC和TCC过于笨重,而且对系统代码侵入性很高,很多事务得嵌套到代码里,如果后期进行替换,工作量有点大


2)还有就是目前的开源项目中最稳定的Seata


3)中间表,针对订单这种有中间业务流转的,我们可以使用中间表结合ACK机制去确保数据的一致性


4)使用RocketMQ,目前的RocketMQ是支持事务消息的


三.题后思考


关于分布式这块的面试中,面试官问得最多的就是如何解决分布式事务,用什么方法,还有没有更好的方法,题目是开放性的,所以结合工作中的遇到的问题和解决方案回答即可。

目录
相关文章
|
1天前
|
监控 数据可视化 Java
【JAVA】分布式链路追踪技术概论
skywalking拥有更加的强大和细粒度的图形监控界面。
12 2
|
2天前
|
移动开发 前端开发 JavaScript
Java和web前端,IT新人该如何选择?,2024年最新Web前端内存优化面试
Java和web前端,IT新人该如何选择?,2024年最新Web前端内存优化面试
|
2天前
|
Java 数据库连接 数据库
spring--为web(1),富士康java面试题整理
spring--为web(1),富士康java面试题整理
|
2天前
|
安全 Java 数据库
Spring boot 入门教程-Oauth2,java面试基础题核心
Spring boot 入门教程-Oauth2,java面试基础题核心
|
2天前
|
Java
Java中int[]与Integer[]相互转化的方法,java基础知识面试重点总结
Java中int[]与Integer[]相互转化的方法,java基础知识面试重点总结
|
2天前
|
算法 Java C++
刷题两个月,从入门到字节跳动offer丨GitHub标星16k+,美团Java面试题
刷题两个月,从入门到字节跳动offer丨GitHub标星16k+,美团Java面试题
|
3天前
|
设计模式 算法 Java
Java的前景如何,好不好自学?,万字Java技术类校招面试题汇总
Java的前景如何,好不好自学?,万字Java技术类校招面试题汇总
|
3天前
|
存储 网络协议 前端开发
es集群安装,邮储银行java面试
es集群安装,邮储银行java面试
|
监控 算法 Java
Java 最常见的 208 道面试题(二十)
Java 最常见的 208 道面试题
140 0
|
存储 NoSQL 前端开发
Java 最常见的 208 道面试题(十九)
Java 最常见的 208 道面试题
113 0
Java 最常见的 208 道面试题(十九)