分佈式 CAP、BASE理論

一 CAP理論:

Consistency          一致性      (顧名思義確保數據一致,不允許出現兩臺及以上服務上數據不一致)

Availability             可用性      (在集羣中一部分節點故障後,是否還能響應客戶端的讀寫請求)

Partition tolerance  容錯性   (允許出錯率的大小,允許出錯率大則程序可以正常執行不會報錯)

三角形定理,三者只可以滿足2者。不要去浪費時間去解決滿足三者 這個是不可能是實現的。從業務的角度上考慮滿足兩者就好。

 

二 BASE 理論:

基本可用:  當出現未知問題時 查詢由1s變成2s 降級頁面 (當前訪問量過多)

軟狀態: (狀態機)待支付、交易處理中、交易成功、交易失敗

最終數據一致性: 基於MQ生產、消費 。 如果出現數據丟失就需要人工維護

 

三 領域驅動設計中的概念

領域:專業的業務流程處理

領域建模:DDD (De-bug -DDrivne Development)

1 界限上下文

2 實體、值對象(context)、領域服務、聚合根、資源....

        實體:對象的唯一標識

        值對象:不需要唯一標識描述 類似上下文傳遞內容 他是個值對象

        領域服務:不同的領域,每個領域提供對應的服務,可供外部調用。

        集合根:可以理解爲全局中的唯一標識,實體是局部唯一標識,聚合根是全局唯一標識。

        資源:提供了基礎設施的查詢,和聚合化服務,關心領域類的模型,是介於領域和數據庫層之間的分層。而不是封裝數據庫層。

                  

分佈式高可用設計:

1 避免單點故障

    a) 負載均衡技術(failover/選址/硬件負載)

    b)熱備(Linux HA)

    c)多機房(同城災備,異地災備)

2 應用的高可用設計

   a) 故障監控(系統監控,CPU、內存),鏈路監控,日誌監控)自動預警

   b)應用的容錯設計 (服務降級處理、限流處理)自我保護

   c)數據量(數據分片、讀寫分離)

3 分佈式架構的可伸縮設計

   a)垂直伸縮  單獨服務器上硬件擴容 加內存加存儲

   b)  水平伸縮   增加服務器

#### 多補充一個CDN  解決不同地區的ip 發出的請求得到服務器負載響應的分發內容處理(內容分發)

CDN可以緩存靜態數據(html、css、img、js等靜態文件)

比如客戶端是在廣州發出的請求  CND可以解析DNS 進行裏負載 判斷裏用戶最近的CDN服務器將內容進行返回給客戶端。具體的使用可以多找找資料進行了解

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章