MST

星途 面试题库

面试题:分布式系统中2PC的基本原理是什么

请阐述分布式事务中2PC(两阶段提交)的基本流程,包括每个阶段的具体操作以及涉及的角色。
44.2万 热度难度
后端开发分布式系统

知识考点

AI 面试

面试题答案

一键面试

角色

  1. 协调者(Coordinator):负责协调所有参与者的操作,决定事务是否提交或回滚。
  2. 参与者(Participants):负责执行本地事务操作,并向协调者反馈操作结果。

基本流程

  1. 第一阶段:准备阶段(Prepare Phase)
    • 协调者
      • 向所有参与者发送 Prepare 消息,询问是否可以执行事务提交操作。
    • 参与者
      • 接收到 Prepare 消息后,执行本地事务,但不提交。
      • 记录事务日志,用于故障恢复。
      • 向协调者反馈执行结果:如果本地事务执行成功,返回 Yes;如果执行失败,返回 No
  2. 第二阶段:提交/回滚阶段(Commit/Rollback Phase)
    • 协调者
      • 如果所有参与者都返回 Yes,则向所有参与者发送 Commit 消息。
      • 如果有任何一个参与者返回 No,或者在规定时间内没有收到所有参与者的响应,则向所有参与者发送 Rollback 消息。
    • 参与者
      • 接收到 Commit 消息后,提交本地事务。
      • 接收到 Rollback 消息后,回滚本地事务。
      • 完成提交或回滚操作后,向协调者发送确认消息。
    • 协调者
      • 接收到所有参与者的确认消息后,事务完成。