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