分佈式系統事務一致性解決方案

強一致架構

當更新操做完成以後,任何多個後續進程或者線程的訪問都會返回最新的更新過的值。這種是對用戶最友好的,就是用戶上一次寫什麼,下一次就保證能讀到什麼。根據 CAP 理論,這種實現須要犧牲可用性。分佈式

弱一致性性能

系統並不保證續進程或者線程的訪問都會返回最新的更新過的值。系統在數據寫入成功以後,不承諾當即能夠讀到最新寫入的值,也不會具體的承諾多久以後能夠讀到。spa

最終一致性線程

弱一致性的特定形式。系統保證在沒有後續更新的前提下,系統最終返回上一次更新操做的值。在沒有故障發生的前提下,不一致窗口的時間主要受通訊延遲,系統負載和複製副本的個數影響。DNS 是一個典型的最終一致性系統。設計

 

在工程實踐上,爲了保障系統的可用性,互聯網系統大多將強一致性需求轉換成最終一致性的需求,並經過系統執行冪等性的保證,保證數據的最終一致性。進程

TCC是應用層的2PC(2 Phase Commit, 兩階段提交),若是你將應用看作資源管理器的話。       詳細來講,TCC每項操做須要作的事情以下:資源

一、Try:嘗試執行業務。同步

  • 完成全部業務檢查(一致性)
  • 預留必須業務資源(準隔離性)

二、Confirm:確認執行業務。it

  • 真正執行業務
  • 不作任何業務檢查
  • 只使用Try階段預留的業務資源

三、Cancel:取消執行業務

  • 釋放Try階段預留的業務資源

分佈式領域CAP理論, Consistency(一致性), 數據一致更新,全部數據變更都是同步的 Availability(可用性), 好的響應性能 Partition tolerance(分區容忍性) 可靠性 定理:任何分佈式系統只可同時知足二點,無法三者兼顧。 忠告:架構師不要將精力浪費在如何設計能知足三者的完美分佈式系統,而是應該進行取捨。

相關文章
相關標籤/搜索