1. 程式人生 > >淺談分散式事務2PC

淺談分散式事務2PC

2PC Two-Phase Commit 實現分散式事務

協調者(Coordinator)元件 【事務管理器(Transaction Manager)】
1、投票(準備)階段:
協調者傳送一個“prepare”請求給所有的參與者,詢問是否可以提交。參與者判斷事務是否會產生一些衝突或者是否有資源執行該事務,如果參與者判斷可以提交,則會將事務提交到本地,並回復“yes”,否則回覆“no”。
2、提交(執行)階段:
如果所有參與者都回復“yes”,則協調者傳送“commit”請求給所有參與者,則所有參與者的 commit 執行生效。如果準備階段有一個參與者回覆“no”,則協調者傳送“abort”請求給所有參與者,所有的參與者對本地事務進行回滾。有的系統實現中,也會在參與者第二階段執行完畢後傳送一個“Commit ACK”或“Abort ACK”訊息,讓協調者更好地判斷所有參與者的執行結果。

未完