MST

星途 面试题库

面试题:分布式系统中2PC在电商订单处理的基本流程

请阐述在分布式电商系统订单处理场景下,2PC(两阶段提交)的基本执行流程,包括每个阶段涉及的主要操作以及参与者的交互过程。
19.8万 热度难度
后端开发分布式系统

知识考点

AI 面试

面试题答案

一键面试

2PC基本执行流程

  1. 第一阶段:准备阶段(投票阶段)
    • 协调者操作:协调者向所有参与者发送事务预处理请求,询问是否可以执行事务操作,并开始等待各参与者的响应。
    • 参与者操作:参与者接收到请求后,执行事务操作的预处理,即对资源进行锁定、检查数据一致性等操作,但不真正提交事务。如果预处理成功,参与者向协调者反馈“准备就绪(Yes)”;如果预处理失败,如资源不足、数据不一致等问题,参与者向协调者反馈“放弃(No)”。
  2. 第二阶段:提交阶段(执行阶段)
    • 所有参与者均反馈“准备就绪(Yes)”的情况
      • 协调者操作:协调者接收到所有参与者的“准备就绪(Yes)”响应后,向所有参与者发送事务提交请求。
      • 参与者操作:参与者接收到提交请求后,正式提交事务,并释放之前锁定的资源。提交完成后,向协调者发送“事务提交完成”的确认消息。
    • 有参与者反馈“放弃(No)”的情况
      • 协调者操作:协调者只要接收到任何一个参与者的“放弃(No)”响应,就向所有参与者发送事务回滚请求。
      • 参与者操作:参与者接收到回滚请求后,回滚之前执行的事务预处理操作,释放锁定的资源,并向协调者发送“事务回滚完成”的确认消息。

参与者交互过程

  1. 协调者与参与者之间:在准备阶段,协调者广播事务预处理请求给各参与者;在提交阶段,根据参与者准备阶段的反馈,协调者向参与者广播提交或回滚请求。
  2. 参与者之间:参与者之间不直接交互,而是通过协调者作为中介进行信息传递和同步,保证所有参与者对事务的处理保持一致。