分布式環境特點
- 分布性
- 並發性,並發性操作很常見,比如同一個分布式系統中的多個節點,同時訪問一個共享資源。數據庫、分布式存儲
- 無序性 進程之間的消息通信,會出現順序不一致問題。
分布式環境下面臨的問題
- 網絡通信,網絡本身不可靠,因此會設計到一些網絡通信問題
- 網絡分區,網絡發生異導致分布式系統中部分之間的網絡延時不斷增大,最終導致組成分布式架構的所有節點中只有部分節點能夠正常的通信
- 三態:分布式架構中包含成功、失敗、超時三種狀態
- 分布式事務
中心化和去中心化
- 冷備或熱備
- 分布式架構里面,很多架構思想是采用leader選舉機制,當集群發生故障的時候自動進行選舉。
CAP/BASE理論
- CAP
- consistency(一致性)所有節點上的數據保持一致
- availablility(可用性)對於每一個操作請求,系統必須能夠在指定的時間內返回對應的處理結果。
+partition-tolerance(分區容錯)表示系統出現腦裂以后,可能導致某些server集群中的其他機器失去聯系
一個分布式系統不可能同時滿足一致性、可用性、分區性容錯性三個需求,但是分區容錯性必須滿足一個最基本的要求。CAP理論僅適用於原子讀寫Nosql場景,不適用於數據庫系統,雖然XA事務會保證數據在分布式系統下的ACID特性,但是會帶來性能方面的影響。
- BASE
- 基本可用
- 響應時間點上的損失:允許在出現某種故障的情況下響應時間增加
- 功能上的損失:允許在高流量的情況下,進行服務降級
- 軟狀態 系統在不影響整體可用性的情況下,允許不同節點的數據副本之間同步出現延時。
- 最終一致性 :強調系統中所有的數據副本,在經過一段時間的同步后,最終能夠達到一個一致的狀態。