2pc(二阶段提交)
二阶段提交,顾名思义整个事务有两个阶段,事务请求阶段和事务执行阶段。在这两个阶段中有涉及到两个角色,参与者和协调者。
第一阶段(提交事务请求)
协调者向所有参与者发送事务内容,确定是否可以执行事务操作并且等待参与者的响应
参与者执行事务
参与者向协调者发送事务执行情况(成功或者失败)
第二阶段(事务提交阶段)
当所有参与者都返回事务执行成功的消息后协调者会向所有的参与者发送提交事务的请求。
协调者发送提交请求
参与者执行事务提交操作
参与者返回事务提交结果
完成事务
在以上过程中任何一个参与者执行失败,协调者就会向所有的参与者发送事务中断的请求。要求参与者回滚事务。
3pc(三阶段提交)
在请求阶段和提交阶段添加了事务预提交阶段(让所有的参与者判断自身是否可以执行事务的提交请求。增加了容错性降低了阻塞范围)
这两个一致性协议都有一个致命问题那就是当网络出现问题的时候,整个事务都会出现问题。
网友评论