2PC和后置提交

  分布式事务,常见的是2pc、tcc

  2pc是分为两个阶段:preCommit和commit,多个节点preCommit成功,协调者再通知各节点,去commit

  tcc是try-confirm-cancel,try阶段是各节点去检查参数和执行,若有一个节点出问题,则进入cancel阶段;若都顺利执行完,则进入confirm阶段

  

  后置提交,在大佬58沈剑的文章 分布式事务,原来可以这么玩? 里,看到了这个概念。感觉很清奇,但是,仔细一想想,其实后置提交本质就是2pc,它是2pc的简化版。2pc有”协调者”角色,后置提交的“协调者”那就是主线程

  当一个项目,配置了多个数据源的时候,使用后置提交,很大程度上,缩短了不可控的时间区间,因为执行sql比较耗时,提交事务很快,若各个节点都执行完毕再去提交,那出问题也只会在提交事务的时间段内。
  缺点是所有节点事务会在同一时间提交,首节点需要等待末节点执行完毕才会去提交,更长的占用数据库连接,降低了吞吐量

发布了158 篇原创文章 · 获赞 193 · 访问量 148万+

猜你喜欢

转载自blog.csdn.net/zy_281870667/article/details/102715650
2PC