2PC和後置提交

  分佈式事務,常見的是2pc、tcc

  2pc是分爲兩個階段:preCommit和commit,多個節點preCommit成功,協調者再通知各節點,去commit

  tcc是try-confirm-cancel,try階段是各節點去檢查參數和執行,若有一個節點出問題,則進入cancel階段;若都順利執行完,則進入confirm階段

  

  後置提交,在大佬58沈劍的文章 分佈式事務,原來可以這麼玩? 裏,看到了這個概念。感覺很清奇,但是,仔細一想想,其實後置提交本質就是2pc,它是2pc的簡化版。2pc有”協調者”角色,後置提交的“協調者”那就是主線程

  當一個項目,配置了多個數據源的時候,使用後置提交,很大程度上,縮短了不可控的時間區間,因爲執行sql比較耗時,提交事務很快,若各個節點都執行完畢再去提交,那出問題也只會在提交事務的時間段內。
  缺點是所有節點事務會在同一時間提交,首節點需要等待末節點執行完畢纔會去提交,更長的佔用數據庫連接,降低了吞吐量

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章