《分佈式技術原理與算法解析》學習筆記Day02

分佈式系統發展歷程

分佈式的發展過程經歷了三個階段:

  • 單機模式(單兵模式)
  • 數據並行或者數據分佈式(游擊隊模式)
  • 任務並行或者任務分佈式(集團軍模式)

什麼是單機模式,它的優缺點是什麼?

單機模式是指所有應用程序和數據均步數在同一臺電腦或者服務器上,由一臺計算機完成所有的處理。

它的好處是功能、代碼和數據集中,便於維護、管理和執行。

它的主要問題是性能受限、存在單點失敗的問題。

什麼是數據分佈式模式,它的優缺點是什麼?

它是指採用消息共享模式使用多臺計算機並行運行或者執行多任務,核心原理是每臺計算機上執行相同的程序,將數據進行拆分放到不同的計算機上進行計算。它強調對數據進行拆分,任務程序在每臺機器上運行。

將程序從單機模式進化到數據分佈式模式,需要兩個步驟:

  1. 將應用和數據分離,分別部署到不同的服務器上。
  2. 對數據進行拆分,將同一類型的數據拆分到兩個甚至更多的數據庫中,這樣應用服務器上的任務就可以針對不同數據並行執行了。

這種模式的好處在於可以利用多臺計算機並行處理多個請求,使得我們可以在相同的時間內完成更多的請求處理,解決了單機模式的計算效率瓶頸問題。

這種模式的主要問題是對提升單個任務的執行性能及降低時延無效。

什麼是任務分佈式模式,它的優缺點是什麼?

它是指將單個複雜的任務拆分爲多個子任務,從而使得多個子任務可以在不同的計算機上並行執行。

任務並行模式完成一項複雜任務包括兩個核心步驟:

  1. 將單任務拆分成多個子任務。
  2. 讓多個子任務並行執行。

這種模式的好處在於提升了性能、擴展性和可維護性,它的主要問題是帶來了設計上的複雜性。

什麼是分佈式?

分佈式指將相同或者相關的程序運行在多臺計算機上,從而實現特定目標的一種計算方式。

數據並行和任務並行都算是分佈式的一種形態。

如何選擇數據並行還是任務並行呢?一個簡單的原則:任務執行時間短,數據規模大,類型相同且無依賴,則採用數據並行;任務複雜,執行時間長,任務可拆分,則可以考慮任務並行。在實際項目中,我們往往會兩種模式並用。

分佈式系統的衡量標準

分佈式的目的是用更多的機器,處理更多的數據和更復雜的任務。

性能、資源、可用性和可擴展性是分佈式系統的重要指標。

性能指標主要用來衡量一個系統處理各種任務的能力。常見的性能指標包括吞吐量、響應時間和完成時間

吞吐量指系統在一定時間內可以處理的任務數。常見的吞吐量包括QPS、TPS和BPS:

  • QPS,即查詢數每秒,用於衡量一個系統每秒處理的查詢數,通常用於讀操作,越高說明對讀操作的支持越好。
  • TPS,即事務數每秒,用於衡量一個系統每秒處理的事務數,通常用於寫操作,越高說明對寫操作的支持越好。
  • BPS,即比特數每秒,用於衡量一個系統每秒處理的數據量。

響應時間是指系統響應一個請求或輸入需要花費的時間。它直接影響用戶體驗,對於時延敏感的業務非常重要。

完成時間是指系統真正完成一個請求或處理需要花費的時間。

資源佔用是指一個系統提供正常能力需要佔用的硬件資源,例如CPU、內存、硬盤等。

有兩個資源佔用情況需要注意:

  • 空載資源佔用,一個系統再沒有任何負載時的資源佔用。
  • 滿載資源佔用,一個系統滿負荷時的資源佔用。

可用性是指系統在面對各種異常時可以正確提供服務的能力。

可用性有兩種不同的衡量方式:

  1. 系統停止服務時間與總的時間之比
  2. 某功能的失敗次數與總的請求次數之比

可靠性(Reliability)與可用性(Availability)有什麼區別?

  • 可靠性是指一個系統完全不出故障的概率,更多用於硬件領域。
  • 可用性是指在允許部分組件失效的情況下,一個系統對外仍能正常提供服務的概率。

可擴展性是指分佈式系統通過擴展集羣機器規模提高系統性能(吞吐量、響應時間、完成時間)、存儲容量、計算能力的特徵,是分佈式系統的特有性質。

衡量可擴展性的常見指標是加速比(Speedup),也就是一個系統進行擴展後相對擴展前的性能提升。

上述這些測量指標,有些指標會彼此約束。不同的分佈式系統,針對測量指標,會有不同的側重:

  • 電商系統最看重吞吐量。
  • IoT最看重資源佔用指標。
  • 電信業務最看重響應時間、完成時間以及可用性。
  • HPC看到通過水平擴展提供系統的加速比。
  • 大數據最看重可擴展性。
  • 雲計算最看重資源開銷。
  • 區塊鏈最看重吞吐量和完成時間。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章