概述
1.3PC比2PC多了一个cancommit阶段,减少了不必要的资源浪费。
因为2PC的第一阶段直接就执行事务操作并将事务信息写入日志了,要是后面失败就浪费了资源;而3PC的cancommit阶段可以校验是否可以执行,如果不能执行就直接返回,这样就减少了资源的浪费。
2.3PC引入超时机制,同时在协调者和参与者中都引入超时机制。
2PC:只有协调者有超时机制,超时后才发送回滚指令。
3PC:协调者和参与者都有超时机制
协调者超时:cancommit、precommit中,如果收不到参与者的反馈,则协调者向参与者发送终止指令。
参与者超时:1.precommit阶段中,参与者接收不到协调者的指令会自己进行中断(cancommit阶段不存在超时,因为协调者第一次给参与者发送指令,所以在precommit阶段才是参与者第一次遇到超时的情况);2.docommit阶段,参与者等不到协调者的指令,参与者会自己进行提交。
最后
以上就是笑点低飞机为你收集整理的2PC与3PC的区别是什么?的全部内容,希望文章能够帮你解决2PC与3PC的区别是什么?所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复