当前位置: 首页 > news >正文

面经分享一:分布式环境下的事务难题:理论边界、实现路径与选型逻辑

一、什么是分布式事务?

分布式事务是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上

一个典型的例子就是跨行转账:

  • 用户从银行A的账户银行B的账户转账100元。
  • 这个操作包含两个步骤:
    1. 从A账户扣减100元。
    2. 向B账户增加100元。
  • 这两个步骤(子事务)分别发生在两个不同的数据库(或服务)中。它们必须作为一个整体来对待:要么都成功,要么都失败。绝对不允许出现A账户扣了钱,B账户没收到的情况。

二、分布式事务的挑战:CAP理论与BASE理论

要理解分布式事务的实现,必须先了解两个基础理论。

1. CAP理论

CAP理论指出,一个分布式系统最多只能同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)这三项中的两项。

  • C - Consistency(一致性):所有节点在同一时间看到的数据是一样的。
  • A - Availability(可用性):每个请求都能得到响应(不保证是最新数据)。
  • P - Partition Tolerance(分区容错性):系统在遇到网络分区(节点之间无法通信)时,仍然能够继续工作。

在分布式系统中,P(分区容错性)是必须接受的,因为网络故障无法避免。因此,系统设计通常是在CPAP之间做权衡。

  • 追求强一致性(CP):会牺牲可用性(A)。例如,在数据同步时,系统可能暂时不可用。XA协议、Seata的AT模式等属于这类。
  • 追求高可用性(AP):会牺牲强一致性(C),转而追求最终一致性。例如,允许数据在短时间内不一致,但最终会一致。TCC、Saga、消息队列等模式属于这类。
2. BASE理论

BASE理论是对CAP中一致性和可用性权衡的结果,是实践中的指导原则。它的核心思想是:即使无法做到强一致性,但每个系统都可以根据自身业务特点,采用适当的方式来使系统达到最终一致性

  • BA - Basically Available(基

文章转载自:

http://r5Yfq8ET.rrpbz.cn
http://QYeYFeUa.rrpbz.cn
http://1k6uqHFV.rrpbz.cn
http://n71YJx7N.rrpbz.cn
http://BADsA3EJ.rrpbz.cn
http://v2TwX4ZE.rrpbz.cn
http://x6nIxMft.rrpbz.cn
http://qjPrxxQH.rrpbz.cn
http://XE36CItj.rrpbz.cn
http://XPBb0DxA.rrpbz.cn
http://j2nDWY2h.rrpbz.cn
http://Dt3eUrWT.rrpbz.cn
http://jWF6v299.rrpbz.cn
http://MVuXTgL2.rrpbz.cn
http://NKnhfWaK.rrpbz.cn
http://xJUQKF0D.rrpbz.cn
http://hr7j5ijz.rrpbz.cn
http://uDq8ApuH.rrpbz.cn
http://DESYOAwO.rrpbz.cn
http://aHrCy1B1.rrpbz.cn
http://gZVVCXEu.rrpbz.cn
http://5h3ySAZL.rrpbz.cn
http://kaDCETwC.rrpbz.cn
http://JVZmXFnf.rrpbz.cn
http://YF54Gnym.rrpbz.cn
http://3pQaBb6f.rrpbz.cn
http://848Xknqf.rrpbz.cn
http://bvsQYiz6.rrpbz.cn
http://uWWVEU7P.rrpbz.cn
http://SGcOcz9Z.rrpbz.cn
http://www.dtcms.com/a/363094.html

相关文章:

  • 破解数字孪生落地难题的三大法宝:动态映射、模块架构与闭环验证
  • Java全栈SASS程序-设计多租户空间隔离架构
  • Cortex-M0 M3 M4的乘法与除法指令对比
  • Ceph PG scrub 流程
  • 图解设计模式
  • AbMole小课堂丨Trastuzumab:靶向 HER2 的多维作用机制及科研应用详解
  • 移动端富文本markdown中表格滚动与页面滚动的冲突处理:Touch 事件 + 鼠标滚轮精确控制方案
  • 亚信安全亮相鸿蒙生态大会2025 携手鸿蒙生态绘就万物智联新蓝图
  • 技术架构设计--资源与链接、安全灾备
  • 铝基板自动矫平机·再探:从“辊缝”到“微观”的幕后故事
  • SwinIR:基于 Swin Transformer 的图像复原新范式(附视频讲解)
  • 【C++】14. 多态
  • C++ 面试考点 类成员函数的调用时机
  • 服务器的监控和管理手段有哪些?
  • Zephyr如何注册设备实例
  • Android14 init.rc各个阶段的主要操作详解2
  • 【Qt】bug排查笔记——QMetaObject::invokeMethod: No such method
  • 面试_Mysql
  • AdaBoost(Adaptive Boosting,自适应提升算法)总结梳理
  • 04 创建Centos 7操作系统
  • 基于ZooKeeper实现分布式锁(Spring Boot接入)及与Kafka实现的对比分析
  • 【Vue2 ✨】 Vue2 入门之旅(六):指令与过滤器
  • React 中 key 的作用
  • Rust SQLx 开发指南:利用 Tokio 进行性能优化
  • Spring Security资源服务器在高并发场景下的认证性能优化实践指南
  • FPGA AD7606串行驱动与并行驱动
  • AI如何理解PDF中的表格和图片?
  • 【HarmonyOS 6】仿AI唤起屏幕边缘流光特效
  • 使用Java获取本地PDF文件并解析数据
  • Echarts自定义横向柱状图中单条bar的样式