分布式面臨的一些問題

分布式環境的特點

  • 分布性 服務并不在一起
  • 并發性 多個服務同時訪問同一個資源(數據庫、緩存)
  • 無序性 因網絡問題服務之間的通信順序不一致

分布式環境下面臨的問題

網路通信 網絡本身的不可靠性,因此會涉及到一些網絡通信問題
網絡分區 當網絡發生異常導致分布式系統中部分節點之間的網絡延遲不斷增大,最終導致組成分布式框架的所有結點,只有部分能夠正常通信,如腦裂
三態 在分布式架構里面,除了成功、失敗,還有超時
分布式事務
ACID(原子性、一致性、隔離性、持久性)

中心化和去中心化

中心化冷備或者熱備
當集群節點發生故障時自動選取新的master

經典的CAP/BASE理論

CAP

C(一致性 Consistency):所有節點上的數據,時刻保持一致
A(可用性 Availability):每個請求都能夠收到一個響應,無論響應成功或者失敗
P(分區容錯 Partition-tolerance):表示系統出現腦裂以后,可能導致某些server與集群中的其他機器失去聯系
一般只能保證CP / AP
CAP理論僅適用于原子讀寫的Nosql場景,不適用于數據庫系統

BASE

基于CAP理論,CAP理論并不適用于數據庫事務(因為更新一些錯誤的數據而導致數據出現紊亂,無論什么樣的數據庫高可用方案都是徒勞),雖然XA事務雖然可以保證數據庫在分布式系統下的ACID特性,但是會帶來性能方面的影響

eBay嘗試了一種完全不同的套路,放寬了對事務ACID的要求。提出了BASE理論(數據的最終一致性)

  • Basically available:數據庫分片模式,把100W的用戶數據分布在5個實例上,如果破壞其中一個實例,仍然可以保證80%的用戶可用
  • soft-state:軟狀態,在基于client-server模式的系統中,server端是否有狀態,決定了系統是否具備良好的水平擴展、負載均衡、故障恢復等特性。
    server端承諾會維護client端狀態數據,這個狀態僅僅維持一小段時間,這段時間以后,server端就會丟棄這個狀態,恢復正常
  • Eventually consistent:數據的最終一致性
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。