2PC两段提交介绍
基于XA協議的兩階段提交(2PC)
兩階段提交協議(Two Phase Commitment Protocol)中,涉及到兩種角色
一個事務協調者(coordinator):負責協調多個參與者進行事務投票及提交(回滾)
多個事務參與者(participants):即本地事務執行者
總共處理步驟有兩個(1)投票階段(voting phase):協調者將通知事務參與者準備提交或取消事務,然后進入表決過程。參與者將告知協調者自己的決策:同意(事務參與者本地事務執行成功,但未提交)或取消(本地事務執行故障);(2)提交階段(commit phase):收到參與者的通知后,協調者再向參與者發出通知,根據反饋情況決定各參與者是否要提交還是回滾;
如果所示 1-2為第一階段,2-3為第二階段
如果任一資源管理器在第一階段返回準備失敗,那么事務管理器會要求所有資源管理器在第二階段執行回滾操作。通過事務管理器的兩階段協調,最終所有資源管理器要么全部提交,要么全部回滾,最終狀態都是一致的
官方解決方案圖例如下:
優點: 盡量保證了數據的強一致,適合對數據強一致要求很高的關鍵領域。
缺點: 犧牲了可用性,對性能影響較大,不適合高并發高性能場景,如果分布式系統跨接口調用,目前 .NET 界還沒有實現方案。
?
總結
                            
                        - 上一篇: CAP介绍
 - 下一篇: TCC事务补偿机制实现分布式事务控制介绍