面试题答案
一键面试两阶段提交(2PC)协议的基本执行流程
- 第一阶段:准备阶段(投票阶段)
- 协调者:
- 向所有参与者发送事务执行请求,并等待参与者的响应。
- 参与者:
- 接收到协调者的事务执行请求后,执行事务操作,但不提交。
- 执行完成后,向协调者反馈执行结果,表明是否准备好提交事务。如果事务执行成功,返回“同意”;如果事务执行失败,返回“中止”。
- 协调者:
- 第二阶段:提交阶段(执行阶段)
- 协调者:
- 如果所有参与者都反馈“同意”,协调者向所有参与者发送提交事务的指令。
- 如果有任何一个参与者反馈“中止”,协调者向所有参与者发送回滚事务的指令。
- 参与者:
- 接收到提交指令,参与者提交事务。
- 接收到回滚指令,参与者回滚事务,撤销第一阶段执行的操作。
- 协调者:
涉及的角色
- 协调者:负责发起事务请求,收集参与者的响应,并根据响应结果决定最终的事务提交或回滚,向参与者发送相应指令。
- 参与者:负责执行事务操作,并向协调者反馈执行结果,根据协调者的指令进行事务的提交或回滚。