上一篇 <<<一致性協(xié)議--2PC提交協(xié)議
下一篇 >>>2PC與3PC協(xié)議的提交區(qū)別
三階段提交協(xié)議是兩階段提交協(xié)議的改進版本,它通過超時機制解決了阻塞的問題,并且把兩個階段增加為三個階段.
1.詢問階段
協(xié)調(diào)者詢問參與者是否可以完成指令,協(xié)調(diào)者只需要回答是還是不是,而不需要做真正的操作,這個階段超時導致中止。
2.準備階段
如果在詢問階段所有的參與者都返回可以執(zhí)行操作,協(xié)調(diào)者向參與者發(fā)送預執(zhí)行請求,然后參與者寫redo和undo日志,執(zhí)行操作,但是不提交操作;
如果在詢問階段任何參與者返回不能執(zhí)行操作的結(jié)果,則協(xié)調(diào)者向參與者發(fā)送中止請求,這里的邏輯與兩階段提交協(xié)議的的準備階段是相似的,這個階段超時導致成功。
3.提交階段
如果每個參與者在準備階段返回準備成功,也就是預留資源和執(zhí)行操作成功,協(xié)調(diào)者向參與者發(fā)起提交指令,參與者提交資源變更的事務,釋放鎖定的資源;
如果任何一個參與者返回準備失敗,也就是預留資源或者執(zhí)行操作失敗,協(xié)調(diào)者向參與者發(fā)起中止指令,參與者取消已經(jīng)變更的事務,執(zhí)行undo日志,釋放鎖定的資源,這里的邏輯與兩階段提交協(xié)議的提交階段一致。
推薦閱讀:
<<<分布式事務產(chǎn)生的背景
<<<解決分布式事務的核心思路
<<<柔性事務和剛性事務(ACID)
<<<CAP理論簡單概況
<<<Base理論核心思想
<<<一致性協(xié)議--XA接口
<<<一致性協(xié)議--Jta規(guī)范
<<<一致性協(xié)議--2PC提交協(xié)議
<<<2PC與3PC協(xié)議的提交區(qū)別
<<<主流的分布式事務解決框架
<<<LCN-框架介紹
<<<LCN-實現(xiàn)原理剖析
<<<LCN-事務協(xié)調(diào)者(TM)安裝啟動
<<<SpringBoot整合LCN
<<<LCN-核心源碼分析
<<<LCN-集群模式介紹
<<<Seata-框架介紹
<<<Seata原理實現(xiàn)/執(zhí)行流程/生命周期
<<<Seata-TM執(zhí)行時突然宕機了會造成什么問題
<<<Seata-核心源碼分析
<<<SpringBoot整合Seata
<<<Seata與Lcn的區(qū)別