【5分钟背八股】2PC和3PC的区别是什么?
2024-04-10 08:10:36  阅读数 1394

面试官:2PC和3PC的区别是什么?

  • 3pc比2pc多了一个can commit阶段,减少了不必要的资源浪费。因为2pc在第一阶段会占用资源,而3pc在这个阶段不占用资源,只是校验一下sql,如果不能执行,就直接返回,减少了资源占用。

  • 引入超时机制。同时在协调者和参与者中都引入超时机制。

2pc:只有协调者有超时机制,超时后,发送回滚指令。

3pc:协调者和参与者都有超时机制。

协调者超时: can commit,pre commit中,如果收不到参与者的反馈,则协调者向参与者发送中断指令。
参与者超时: pre commit阶段,参与者进行中断; do commit阶段,参与者进行提交。

【5分钟背八股】60:2PC和3PC的区别是什么?.png

推荐阅读:【JAVA面试八股[最新高频]:Java基础/SSM框架/设计模式/SpringBoot/JVM/分布式/微服务/ES/多线程/redis/mysql/大厂算法!】