在分布式系統中,當乙個事務操作需要跨越多個分布式節點的時候,為了保持事務acid的特徵,就需要引入乙個稱為「協調者」(coordinator)的元件來統一排程所有分布式節點的執行邏輯,這些被排程的節點則稱為「參與者」(participant)。協調者負責參與者的行為,並最終決定這些參與者是否要把事務真正提交。在長期的研究探索過程中,湧現了一大批經典的一致性協議和演算法,其中最著名的就是二階段、三階段協議和paxos演算法。
一、2pc
2pc是two-phase-commit的縮寫,即兩個階段提交。
階段一:提交事務請求
階段二:執行事務提交
1、執行事務提交
2、中斷事務
過程示意圖如下:
優缺點:
優點:原理簡單,實現方便
缺點:同步阻塞、單點問題、腦裂、太過保守。
二、3pc
3pc是three-phase coomit的縮寫,即三階段提交,是2pc的改進版本,其將二階段提交協議的「提交事務請求」過程一分為二,形成了由cancommit、preccommit和docommit三個階段組成事務處理協議。
階段一:cancommit事務詢問。
階段二:precommit預提交
1、執行事務預提交
2、中斷事務
階段三:docommit正式提交
1、執行提交
2、中斷事務
過程示意圖如下:
優缺點:
優點:降低參與者的阻塞範圍,能夠在出現單點故障後繼續達成一致性。
缺點:參與者收到precommit訊息後,如果出現網路分割槽,此時協調者所在的節點和參與者無法進行正常的網路通訊,這種情況下,該參與者以然後進行事務提交,這會導致資料的不一致性。
一致性協議
節點在進行事務處理過程中保持原子性和一致性而設計的一種演算法。1.事務詢問。2.執行事務。3.各參與者向協調者反饋事務詢問的響應。理解 類似協調者組織各參與者對一次事務操作進行投票表態的過程。假如參與者全部反饋yes 1.傳送提交請求 2.事務提交 3.反饋事務提交結果 4.完成事務。假如任何乙個參...
一致性協議
在分布式系統中,每乙個機器節點雖然都能夠明確地知道自己在進行事務操作過程中的結果是成功或失敗,但卻無也直接獲取到其他分布式節點的操作結果。因此,當乙個事務操作需要跨越多個分布式節點的時候,為了保持事務處理的acid特性,就需要引人乙個稱為 協調者 的元件來統一排程所有分布式節點的執行邏輯,這些被排程...
一致性協議
從這週開始深入學習zookeeper,主要是看paxos到zookeeper分布式一致性理論與實踐以及zookeeper3.5的原始碼,在整個學習過程中會整理一些學習筆記。1.分布式基本概念 2.一致性協議 2pc即兩階段提交,是計算機網路尤其是在資料庫領域內,為了使基於分布式系統架構下的所有節點在...