news 2026/6/10 8:52:08

【分布式系统】07 事务(上):2PC 与 3PC —— 追求“完美原子性”的理想与代价

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【分布式系统】07 事务(上):2PC 与 3PC —— 追求“完美原子性”的理想与代价

大家好,我是Tony Bai。

欢迎来到《分布式系统:原理、哲学与实战》微专栏的第七讲。

在上一讲中,我们征服了“分区”这片广阔的疆域。通过将数据“分而治之”,我们获得了构建海量系统的能力。但我们也留下了一个最棘手的“悬念”:

如果一次业务操作,需要原子性地修改位于不同分区的数据,我们该怎么办?

想象一个经典的银行转账场景:用户 Gopher 要从他在分区 A 的储蓄账户,转账 100 元到他在分区 B 的信用卡账户。这个操作包含两个步骤:

  1. 储蓄账户(分区 A)扣款 100 元。

  2. 信用卡账户(分区 B)入账 100 元。

我们对这个操作有一个神圣的、不可违背的要求:原子性 (Atomicity)。这两个步骤必须要么全部成功,要么全部失败。我们绝不能接受扣款成功但入账失败(钱没了),或者扣款失败但入账成功(天降横财)的情况。

在单机数据库中,BEGIN TRANSACTION...COMMIT语句优雅地为我们解决了这个问题。但现在,数据被分割在两个独立的、通过不可靠网络连接的物理节点上。我们如何在一个被“分裂”的世界里,重塑“原子性”的辉煌?

今天,我们将深入探讨对这个问题最早、也是最经典的回答——**两阶段提交协议 (Two-Phase Commit, 2PC)**。我们将看到,它是一个试图在分布式世界中,完美复刻单机事务的“理想主义”英雄。

然而,当这个“英雄”暴露出其致命的脆弱性时,一场旨在拯救它的“改良运动”也随之展开,催生了更复杂的**三阶段提交协议 (Three-Phase Commit, 3PC)**。

本章,我们将共同见证这场围绕“完美原子性”展开的、长达数十年的执着追求与艰难挣扎。我们将剖析 2PC 的伟大构想与悲壮缺陷,并审视 3PC 的改良尝试为何最终也未能成为完美的答案。

我们先从两阶段提交协议( 2PC )开始。

2PC 协议详解:一场由“协调者”主导的投票

两阶段提交引入了两个核心角色:

  • 协调者 (Coordinator):事务的发起者和最终决策者。在我们的例子中,可以是一个专门的事务管理服务,或是发起转账请求的应用服务器。

  • 参与者 (Participants):所有涉及该事务的数据节点。在我们的例子中,就是分区 A 和分区 B。

顾名思义,整个协议分为两个阶段:准备阶段 (Prepare Phase)和 提交阶段 (Commit Phase)。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/9 21:21:54

Emotion2Vec+支持MP3/WAV,音频格式转换不用愁

Emotion2Vec支持MP3/WAV,音频格式转换不用愁 1. 引言 在语音情感识别领域,音频格式的兼容性一直是影响用户体验的关键因素之一。许多深度学习模型对输入音频有严格的格式要求,通常仅支持WAV等未压缩格式,而用户实际使用的音频文…

作者头像 李华
网站建设 2026/5/31 3:27:26

5分钟快速部署PETRV2-BEV模型,星图AI算力平台让自动驾驶开发更简单

5分钟快速部署PETRV2-BEV模型,星图AI算力平台让自动驾驶开发更简单 1. 背景与技术价值 1.1 BEV感知:自动驾驶的关键一环 在自动驾驶系统中,环境感知是决策和控制的基础。传统方法依赖于单视角图像或激光雷达点云进行目标检测,但…

作者头像 李华
网站建设 2026/6/8 15:00:18

AI绘画走进儿童世界:Qwen定制模型部署全流程实战教程

AI绘画走进儿童世界:Qwen定制模型部署全流程实战教程 随着AI生成技术的快速发展,图像生成已从专业艺术创作逐步渗透到教育、娱乐等大众场景。尤其在儿童内容领域,安全、友好、富有童趣的视觉素材需求日益增长。基于阿里通义千问大模型衍生出…

作者头像 李华
网站建设 2026/6/6 16:12:20

Qwen3-Embedding-4B参数详解:top_k设置对结果影响

Qwen3-Embedding-4B参数详解:top_k设置对结果影响 1. 背景与问题引入 随着大模型在信息检索、语义理解、推荐系统等场景中的广泛应用,高质量的文本嵌入(Text Embedding)成为构建智能应用的核心基础。Qwen3-Embedding-4B作为通义…

作者头像 李华
网站建设 2026/6/4 20:56:37

FSMN-VAD直播场景应用:实时语音片段标记系统

FSMN-VAD直播场景应用:实时语音片段标记系统 1. 引言 在实时音视频处理、在线教育、智能客服和直播平台等场景中,如何高效地识别音频流中的有效语音片段并剔除静音或背景噪声,是一个关键的预处理环节。传统的语音端点检测(Voice…

作者头像 李华
网站建设 2026/6/4 16:32:12

主机与设备枚举过程故障:系统学习USB识别问题

当你的U盘插上没反应:一场深入USB枚举失败的硬核排查之旅你有没有过这样的经历?手里的U盘明明灯亮了,电脑却像没看见一样;或者设备反复弹出、提示“未知USB设备”——点开设备管理器,那个带着黄色感叹号的“其他设备”…

作者头像 李华