分佈式架構認識

        互聯網時代,計算機系統規模越來越大,所有業務集中部署在一個或多個大型機上的結構已經不能滿足現在的需要。隨着微型計算機的出現,廉價PC機成爲架構首選。隨着業務的不斷髮展,用戶訪問量的迅速提高,計算機系統的規模也在不斷擴大,單一大型機進行系統擴容比較困難,因此分佈式處理方式越來越受到業界的青睞。

集中式特點
       集中式系統有一臺或多臺主計算機組成中心節點,數據集中存儲在中心節點,所有業務也部署在中心節點,所有功能集中處理。部署結構簡單,無須考慮多個節點之間的分佈式協作問題。
分佈式特點
       分佈式系統是一個硬件或軟件組件分佈在不同的網絡計算機上,彼此之間僅僅通過消息傳遞進行通信和協調的系統。有如下幾個特點:
  • 分佈性:空間上隨意分佈,分佈情況隨時變動;
  • 對等性:沒有主從之分,節點對等,副本是常見概念之一;
  • 併發性:可能會併發操作一些共享資源,如何準確並高效的協調分佈式併發操作是分佈式系統架構與設計中的最大挑戰之一;
  • 缺乏全局時鐘:很難定義兩個事件的先後順序;
分佈式環境的各種問題
通信異常
       分佈式系統需要在各個節點之間進行網絡通信,伴隨着網絡不可用的風險,因此消息丟失和消息延遲變得非常普遍。
網絡分區
       網絡異常會導致組成分佈式的所有節點中,只有部分節點之間能進行正常通信,另一些不能,這個現象稱爲網絡分區,俗稱“腦裂”,此時分佈式系統會出現局部小集羣,對分佈式一致性提出了非常大的挑戰。
三態
分佈式系統的請求與響應存在特有的“三態”概念:成功、失敗與超時。
節點故障(宕機)
分佈式事務
     單機數據庫中很容易實現一套滿足ACID特性的事務處理系統,但在分佈式數據庫中,數據分散在不同的機器上,分佈式事務處理是很不容易的。分佈式事務是指事務的參與者、支持事務的服務器、資源服務器以及事務管理器分別位於分佈式系統的不同節點上,通常一個分佈式事務會實際對多個數據源或業務系統的操作。一個分佈式事務可以看作是由多個分佈式的操作序列組成的,一系列分佈式操作序列稱爲子事務,各個子事務的執行是分佈式的,所以保證ACID特性的分佈式事務處理系統就會額外複雜。
CAP和BASE理論
CAP理論:一個分佈式系統不可能同時滿足一致性(C:Consistency)、可用性(A:Availability)和分區容錯性(P:Partition tolerance)這三個基本需求,最多隻能同時滿足其中兩項。
一致性:分佈式環境中,數據在多個副本之間能夠保持一致。
可用性:服務必須一致處於可用狀態,用戶的每一個請求都能在有限的時間內返回結果。
分區容錯性:任何網絡分區故障時人能夠保證對外提供一致性和可用性的服務,除非整個網絡癱瘓。
BASE理論:Basically Available(基本可用)、Soft state(軟狀態)、Eventually consistent(最終一致)。
基本可用:在系統出現故障時允許損失部分功能——響應時間上的損失(由0.5秒延遲至1秒)、功能上的損失(服務降級),絕不等價於系統不可用。
軟狀態:也稱弱狀態,與硬狀態相對,允許系統的數據存在中間狀態,但不影響系統的整體可用性,即數據副本之間進行數據同步過程存在延時。
最終一致性:系統中所有數據副本經過一段時間同步最終達到一個一致狀態,不需要實時保證數據的強一致性。
       計算機系統從集中式向分佈式變革伴隨着分佈式網絡、分佈式事務和分佈式數據一致性等內在的一系列問題,這些問題現在也都得到了很好的解決,出現了很多開源的好工具,我們還要繼續學習。

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