天天看點

兩階段送出與三階段送出

兩階段送出與三階段送出

兩階段送出

上篇文章中我們說到兩階段送出2pc,兩階段送出還是有很多缺點的,它可能因為網絡問題導緻資料不一緻,比如協調者發送的送出事務的請求由于網絡問題隻有部分參與者能接收到,這樣部分參與者送出了事務而另一部分參與者沒有送出就造成了資料的不一緻,第二個問題就是協調者如果挂掉,參與者既沒有送出也沒有復原,第三個問題就是同時在執行的時候參與節點的服務都是阻塞的,不能對外提供服務

三階段送出

那麼什麼是三階段送出,三階段送出能否能解決這些問題呢?

三階段送出分為CanCommit階段,PreCommit階段和doCommit階段。第一個階段是檢查自身狀态是否滿足了事務操作的條件,一般可能是首先擷取到這個分布式事務的鎖,第二個階段就是開始事務,但是沒有送出,并傳回給協調者結果,第三個階段就是對事務的送出或復原。

總結

❤️ 感謝大家

  1. 歡迎關注我❤️,點贊??,評論?,轉發?