新闻详情

新闻详情

首页 / 资讯中心 / 详情

Java面试分布式事务,4种方案一次讲清

发布时间:2026/11/14 18:44:47来源:尧图网络
Java面试分布式事务,4种方案一次讲清
引言分布式事务是Java面试中高级岗位的必考题。单体时代Transactional一个注解就能搞定微服务拆分后一个业务操作横跨多个服务、多个数据库数据一致性就成了大难题。面试官问分布式事务其实是在考察你对一致性模型、补偿机制和落地成本的权衡能力。下面这4种方案一次讲清。一、2PC两阶段提交强一致但笨重2PCTwo-Phase Commit把事务分为准备和提交两个阶段。准备阶段协调者询问所有参与者能否提交参与者执行事务但不提交锁定资源并返回结果。提交阶段如果所有参与者都同意协调者通知提交否则通知回滚。优点强一致性实现相对简单数据库层面原生支持XA协议。缺点同步阻塞参与者在准备阶段一直锁资源性能差协调者单点故障如果协调者在提交阶段宕机参与者会一直阻塞数据不一致风险部分参与者提交后协调者才宕机会导致数据错乱。适用场景传统银行、金融等对强一致要求极高、并发不高的内部系统。Java中可用Atomikos、Narayana实现。面试回答要点2PC是强一致方案但性能和可用性差互联网高并发场景基本不用。二、TCCTry-Confirm-Cancel业务层补偿TCCTry-Confirm-Cancel把每个操作拆成三个方法Try阶段做业务检查和资源预留Confirm阶段确认执行使用Try预留的资源Cancel阶段取消执行释放预留资源。优点不依赖数据库事务性能好锁粒度小只锁业务资源可跨服务、跨数据库。缺点业务侵入性强每个接口都要写三个方法需要处理空回滚、幂等、悬挂等问题Confirm和Cancel必须幂等。适用场景电商、支付等高并发场景如订单扣库存、账户扣款。Java中可用Seata的TCC模式、Hmily。面试回答要点TCC是业务层面的两阶段核心是补偿难点是幂等和防悬挂。三、可靠消息最终一致性MQ本地消息表核心思路业务操作和发送消息在同一个本地事务中完成。比如订单服务创建订单后把消息写入本地消息表再由定时任务或MQ事务消息投递。下游服务消费消息执行自己的业务失败则重试直到成功。优点异步解耦吞吐量高最终一致性适合长流程业务。缺点一致性延迟中间状态可能被看到需要保证消息不丢、不重、有序本地消息表增加了数据库压力。适用场景订单成功后通知积分、优惠券、物流等下游系统。RocketMQ事务消息是典型实现。面试回答要点最终一致性不是强一致但换来了高可用和高性能互联网场景首选。四、最大努力通知不保证成功只保证尽力最大努力通知是最弱的一致性方案。发起方执行完业务后通过MQ或HTTP通知接收方接收方处理失败后发起方按策略重试重试到一定次数后不再保证。接收方也可以主动查询对账。优点实现简单对发起方侵入小。缺点不保证最终一致只保证“尽力”需要人工兜底或对账补偿。适用场景支付结果通知、外部系统回调等对一致性要求不高的场景。面试回答要点最大努力通知适合可容忍不一致的业务通常配合对账系统使用。总结分布式事务没有银弹。2PC强一致但性能差TCC性能好但业务侵入大可靠消息最终一致性是互联网主流最大努力通知则用于弱一致场景。面试时先讲清每种方案的原理和优缺点再结合业务场景给出选型建议最后提一句“实际项目中往往多种方案混合使用”就能让面试官看到你的架构思维。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

【外设】之大彩串口显示屏 2026/11/14 3:51:47

【外设】之大彩串口显示屏

大彩串口屏初步使用 1 .官网下载 STM32 屏幕 GUI 设计资料 http://www.gz-dc.com/category/typeid/4112 找到 STM32 Keil 工程,移植相关代码因项目而异进行移植,由于项目简单,本人只对用到的指令接口进行修改。 比如:注意事项&…

阅读更多 →
无法下载Windows系统iso文件 2026/11/12 23:59:09

无法下载Windows系统iso文件

当我遇到这个问题的时候,我打开了一个网站: 登录 然后我打算下载的时候: 突然那个官方的连接就可以下载了:

阅读更多 →
【清华代码熊】DeepSeek V4.1 Flash 后训练详解 2026/11/14 10:11:15

【清华代码熊】DeepSeek V4.1 Flash 后训练详解

📌 上期解析了 DeepSeek V4.1 Flash 模型架构改进,本期解析 DeepSeek V4.1 Flash 预训练/后训练技术: 🌟 预训练:45T 文本 多模态混合语料、直接训练 sparse attention(取消 DeepSeek V4 的 dense 冷启动&…

阅读更多 →
Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ... 2026/11/14 17:14:38

Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ...

文章主要内容和创新点 主要内容 本文聚焦于多模态大语言模型(MLLM)强化学习(RL)训练中的效率问题,提出了一个名为Shuffle-R1的框架。研究发现,当前RL训练存在两个关键缺陷: 优势值坍缩(Advantage Collapsing):批次中大多数优势值集中在零附近,导致有效梯度信号被淹…

阅读更多 →
PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction 2026/11/14 16:35:50

PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction

一、文章主要内容总结 本文聚焦于利用大型语言模型(LLMs)实现个人身份信息(PII)脱敏的研究,旨在解决传统脱敏方法(如基于规则的系统、领域特定命名实体识别(NER)模型)泛化能力差、跨格式/跨语境适应性弱的问题。 研究通过全面评估多种LLM架构(包括密集型LLM(D-LLM…

阅读更多 →
LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model 2026/11/14 3:51:43

LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model

文章主要内容和创新点 主要内容 本文聚焦于二进制图像-文本相关性评估任务(判断图像与文本“相关”或“不相关”),针对该任务中文本格式多样、相关性定义随场景变化等挑战,提出了基于多模态大语言模型(MLLM)的解决方案LLaVA-RE。 模型设计:LLaVA-RE基于LLaVA 1.5架构,…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉