一、分散式一致性 一個事務需要跨多個分散式節點,又要保持事務的ACID特性,需要引入協調者來統一調度所有分散式節點的執行邏輯,被調度的節點稱為參與者。 協調者負責調用參與者,並決定最終是否提交事務。基於這個思想,衍生出2PC和3PC兩種協議 二、2PC協議(Two phase commit) 二階段 ...
一、分散式一致性
一個事務需要跨多個分散式節點,又要保持事務的ACID特性,需要引入協調者來統一調度所有分散式節點的執行邏輯,被調度的節點稱為參與者。
協調者負責調用參與者,並決定最終是否提交事務。基於這個思想,衍生出2PC和3PC兩種協議
二、2PC協議(Two phase commit)
二階段提交:將事務分成了投票和執行兩個階段。
優點:原理簡單
缺點:單點問題、同步阻塞、無限期等待、腦裂
事務提交場景:
事務回滾場景:
三、3PC(Three phase commit)
三階段提交:將2PC的執行事務過程一分為二,形成canCommit、preCommit、doCommit三個階段的事務處理協議。
優點:解決單點問題、添加preCommit過程,避免2PC提交協議的無限期等待問題
缺點:一旦出現網路分區協調者與參與者無法通信,參與者在超時之後,依然會提交事務,造成數據不一致