1. 程式人生 > >分散式基本概念

分散式基本概念

節點

  指一個可以獨立按照分散式協議完成一組邏輯的程式個體

有狀態與無狀態

  當一個節點可以在其本機上進行資料互動則稱為有狀態節點。如果一個節點進行資料互動需要請求其他節點來幫其實現則稱為無狀態節點

異常
  1. 機器怠機 指機器異常宕機,需要人為重啟。在怠機過程中,無法工作的節點的狀態 稱為 不可用狀態,一般怠機節點可以通過讀取本地硬碟或者讀取其他節點的資料恢復其記憶體資訊從而重新進入正常狀態,從不可用到可用稱為宕機恢復。
  2. 網路異常 多為網路擁塞造成丟包或者資料經過對方協議棧ACK後,但因對方伺服器怠機導致無法正常處理資料所造成的異常。
  3. 網路分化 指某些節點的通訊不正常或丟包率不在可接受範圍內,則稱這種特殊的異常為網路分化(network partition),多為跨機房通訊時發生
  4. 儲存資料丟失 這個指節點儲存的資料不可被讀取或讀取出的資料錯誤。這種情況多為 硬體儲存介質損壞時發生。對於狀態節點來說,資料丟失意味著狀態丟失。
副本

  副本指在分散式系統中為資料或者服務提高的備份。副本分為如下倆個副本

  1. 資料副本 指在不同節點上持久化儲存同一份資料
  2. 服務副本 在不同節點上起相同的服務
副本一致性

  副本一致性指通過相應的控制協議使得系統外部讀取系統內部各個副本的資料在一定的約束條件下結果相同。副本一致性是針對整個分散式系統而言,並非某一個副本而言。

  • 強一致性 任何時刻任何使用者或節點讀取的副本資料都是最新的。
  • 單調一致性 任何時刻,任何使用者一旦讀到某個資料在某次更新後的值,不會再讀到比這個值更舊的值。這個一致性從使用者視角程度講的,可能其他使用者讀到的值並非與他一致。
  • 會話一致性 任何使用者在某一次會話一旦讀到某次更新後的值,不會在此會話中讀到比它更舊的值,這個一致性從會話角度上講的。
  • 最終一致性 指各個副本的資料最終達到完全一致的狀態,但到達完全一致狀態所需的資料不能保障。對於最終一致性分散式系統而言,只要一個使用者一直讀一個副本的內容,那麼它讀到的值只會越來越新類似單調一致性效果,但不同副本間無法保障一致性。
  • 弱一致性 指一旦更新,使用者無法在一個確定時間內讀到這次更新的值,即使可能讀到了新的值在某個副本上,也不能保證在其他副本上讀到了新的值。

衡量分散式系統的指標

效能
  • qps 指每秒可以執行多少次具體的相應操作,它是衡量系統的併發能力(Get/Set)
  • 吞吐量 指系統在某一時間可以處理的資料總量
  • 延遲 指處理某一操作需要的時間
可用性

  指 容錯能力,當傳送異常時多少時間能恢復功能的能力

可擴充套件性

   指分散式系統通過叢集擴充套件來提高效能、儲存容量、計算能力的特性。可擴充套件性越好表明系統的某些指標隨著機器數量的增長也進行相應的增長。