分佈式系統優勢及衡量指標

分佈式系統:

分佈式系統就是利用多臺計算機協同解決單臺計算機所不能解決的計算、存儲等問題。單機系統與分佈式系統的最大的區別在於問題的規模,即計算、存儲的數據量的區別。–《分佈式系統原理介紹》

分佈式系統是若干獨立計算機的集合,這計算機對用戶來說就像單個相關係統。–<<分佈式系統原理與範型>>

分佈式系統是其組件分佈在聯網的計算機上,組件之間通過傳遞消息進行通信和動作協調的系統。–<<分佈式系統概念與設計>> 第5版

分佈式架構的優勢:

1、單個服務宕機不影響別的服務正常運行!

2、單個節點所有的負載分佈均衡到了多臺服務器上!

3、各服務之間相互透明,實現解耦!

衡量分佈式系統的指標

1、可擴展性

       系統的可擴展性(scalability)指分佈式系統通過擴展集羣機器規模提高系統性能(吞吐、延遲、併發)、存儲容量、計算能力的特性。可擴展性是分佈式系統的特有性質,分佈式系統的設計初衷就是利用集羣多機的能力處理單機無法解決的問題。然而,完成某一具體任務的所需要的機器數目即集羣規模取決於系統的性能和任務的要求。當任務的需求隨着具體業務不斷提高時,除了升級系統的性能,另一個做法就是通過增加機器的方式擴展系統的規模。好的分佈式系統總在追求“線性擴展性”,也就是使得系統的某一指標可以隨着集羣中的機器數量線性增長。

2、高性能

       無論是分佈式系統還是單機系統,都會對性能(performance)有所要求。對於不同的系統,不同的服務,關注的性能不盡相同、甚至相互矛盾。常見的性能指標有:系統的吞吐能力,指系統在某一時間可以處理的數據總量,通常可以用系統每秒處理的總的數據量來衡量;系統的響應延遲,指系統完成某一功能需要使用的時間;系統的併發能力,指系統可以同時完成某一功能的能力,通常也用 QPS(query per second)來衡量。上述三個性能指標往往會相互制約,追求高吞吐的系統,往往很難做到低延遲;系統平均響應時間較長時,也很難提高 QPS。

3、高可用

       系統的可用性(availability)指系統在面對各種異常時可以正確提供服務的能力。系統的可用性可以用系統停服務的時間與正常服務的時間的比例來衡量,也可以用某功能的失敗次數與成功次數的比例來衡量。可用性是分佈式的重要指標,衡量了系統的魯棒性,是系統容錯能力的體現。

4、一致性

       分佈式系統爲了提高可用性,總是不可避免的使用副本的機制,從而引發副本一致性的問題。根據具體的業務需求的不同,分佈式系統總是提供某種一致性模型,並基於此模型提供具體的服務。越是強的一致的性模型,對於用戶使用來說使用起來越簡單。例如通常我們總是希望某次更新後可以立刻讀到最新的修改,如果成功更新後的數據依舊有可能不一致讀到舊數據,那麼用戶就需要在寫入數據時加入序列號等信息,並在讀取數據時首先自行實現過濾去重後再使用數據。主數據與副本數據一致。

      

注1:

副本概念:

數據副本指在不同的節點上持久化同一份數據。

服務副本指數個節點提供某種相同的服務,這種服務一般並不依賴於節點的本地存儲,其所需數據一般來自其他節點。

 

參考資料:《分佈式系統原理介紹》作者:劉傑

如有錯誤歡迎指正!

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