大连市城市建设投资集团网站,网站seo检测工具,双语网站代码,房地产微信互动营销网站建设1 两阶段提交协议
两阶段提交方案应用非常广泛#xff0c;几乎所有商业OLTP数据库都支持XA协议。但是两阶段提交方案锁定资源时间长#xff0c;对性能影响很大#xff0c;基本不适合解决微服务事务问题。
缺点#xff1a;
如果协调者宕机#xff0c;参与者没有协调者指…1 两阶段提交协议
两阶段提交方案应用非常广泛几乎所有商业OLTP数据库都支持XA协议。但是两阶段提交方案锁定资源时间长对性能影响很大基本不适合解决微服务事务问题。
缺点
如果协调者宕机参与者没有协调者指挥则会一直阻塞。、 如下图 第一阶段
准备阶段协调者向参与者发起指令参与者评估自己的状态如果参与者评估指令可以完成则会写redo或者undo日志让后锁定资源执行操作但并不提交。
第二阶段:
如果每个参与者明确返回准备成功则协调者向参与者发送提交指令参与者释放锁定的资源如何任何一个参与者明确返回准备失败则协调者会发送中指指令参与者取消已经变更的事务释放锁定的资源。 2 三阶段提交协议
三阶段提交协议是两阶段提交协议的改进版本。它通过超时机制解决了阻塞的问题并且把两个阶段增加为三个阶段
询问阶段
协调者询问参与者是否可以完成指令协调者只需要回答是还是不是而不需要做真正的操作这个阶段超时导致中止。 准备阶段
如果在询问阶段所有的参与者都返回可以执行操作协调者向参与者发送预执行请求然后参与者写redo和undo日志执行操作但是不提交操作如果在询问阶段任何参与者返回不能执行操作的结果则协调者向参与者发送中止请求这里的逻辑与两阶段提交协议的的准备阶段是相似的这个阶段超时导致成功 提交阶段
如果每个参与者在准备阶段返回准备成功也就是预留资源和执行操作成功协调者向参与者发起提交指令参与者提交资源变更的事务释放锁定的资源如果任何一个参与者返回准备失败也就是预留资源或者执行操作失败协调者向参与者发起中止指令参与者取消已经变更的事务执行undo日志释放锁定的资源这里的逻辑与两阶段提交协议的提交阶段一致 3 2PC与3PC提交区别
增加了一个询问阶段询问阶段可以确保尽可能早的发现无法执行操作而需要中止的行为但是它并不能发现所有的这种行为只会减少这种情况的发生在准备阶段以后协调者和参与者执行的任务中都增加了超时一旦超时协调者和参与者都继续提交事务默认为成功这也是根据概率统计上超时后默认成功的正确性最大
三阶段提交协议与两阶段提交协议相比具有如上的优点但是一旦发生超时系统仍然会发生不一致只不过这种情况很少见罢了好处就是至少不会阻塞和永远锁定资源。