分布式系統發展歷程
分布式的發展程序經歷了三個階段:
- 單機模式(單兵模式)
- 資料并行或者資料分布式(游擊隊模式)
- 任務并行或者任務分布式(集團軍模式)
什么是單機模式,它的優缺點是什么?
單機模式是指所有應用程式和資料均步數在同一臺電腦或者服務器上,由一臺計算機完成所有的處理,
它的好處是功能、代碼和資料集中,便于維護、管理和執行,
它的主要問題是性能受限、存在單點失敗的問題,
什么是資料分布式模式,它的優缺點是什么?
它是指采用訊息共享模式使用多臺計算機并行運行或者執行多任務,核心原理是每臺計算機上執行相同的程式,將資料進行拆分放到不同的計算機上進行計算,它強調對資料進行拆分,任務程式在每臺機器上運行,
將程式從單機模式進化到資料分布式模式,需要兩個步驟:
- 將應用和資料分離,分別部署到不同的服務器上,
- 對資料進行拆分,將同一型別的資料拆分到兩個甚至更多的資料庫中,這樣應用服務器上的任務就可以針對不同資料并行執行了,
這種模式的好處在于可以利用多臺計算機并行處理多個請求,使得我們可以在相同的時間內完成更多的請求處理,解決了單機模式的計算效率瓶頸問題,
這種模式的主要問題是對提升單個任務的執行性能及降低時延無效,
什么是任務分布式模式,它的優缺點是什么?
它是指將單個復雜的任務拆分為多個子任務,從而使得多個子任務可以在不同的計算機上并行執行,
任務并行模式完成一項復雜任務包括兩個核心步驟:
- 將單任務拆分成多個子任務,
- 讓多個子任務并行執行,
這種模式的好處在于提升了性能、擴展性和可維護性,它的主要問題是帶來了設計上的復雜性,
什么是分布式?
分布式指將相同或者相關的程式運行在多臺計算機上,從而實作特定目標的一種計算方式,
資料并行和任務并行都算是分布式的一種形態,
如何選擇資料并行還是任務并行呢?一個簡單的原則:任務執行時間短,資料規模大,型別相同且無依賴,則采用資料并行;任務復雜,執行時間長,任務可拆分,則可以考慮任務并行,在實際專案中,我們往往會兩種模式并用,
分布式系統的衡量標準
分布式的目的是用更多的機器,處理更多的資料和更復雜的任務,
性能、資源、可用性和可擴展性是分布式系統的重要指標,
性能指標主要用來衡量一個系統處理各種任務的能力,常見的性能指標包括吞吐量、回應時間和完成時間,
吞吐量指系統在一定時間內可以處理的任務數,常見的吞吐量包括QPS、TPS和BPS:
- QPS,即查詢數每秒,用于衡量一個系統每秒處理的查詢數,通常用于讀操作,越高說明對讀操作的支持越好,
- TPS,即事務數每秒,用于衡量一個系統每秒處理的事務數,通常用于寫操作,越高說明對寫操作的支持越好,
- BPS,即位元數每秒,用于衡量一個系統每秒處理的資料量,
回應時間是指系統回應一個請求或輸入需要花費的時間,它直接影響用戶體驗,對于時延敏感的業務非常重要,
完成時間是指系統真正完成一個請求或處理需要花費的時間,
資源占用是指一個系統提供正常能力需要占用的硬體資源,例如CPU、記憶體、硬碟等,
有兩個資源占用情況需要注意:
- 空載資源占用,一個系統再沒有任何負載時的資源占用,
- 滿載資源占用,一個系統滿負荷時的資源占用,
可用性是指系統在面對各種例外時可以正確提供服務的能力,
可用性有兩種不同的衡量方式:
- 系統停止服務時間與總的時間之比
- 某功能的失敗次數與總的請求次數之比
可靠性(Reliability)與可用性(Availability)有什么區別?
- 可靠性是指一個系統完全不出故障的概率,更多用于硬體領域,
- 可用性是指在允許部分組件失效的情況下,一個系統對外仍能正常提供服務的概率,
可擴展性是指分布式系統通過擴展集群機器規模提高系統性能(吞吐量、回應時間、完成時間)、存盤容量、計算能力的特征,是分布式系統的特有性質,
衡量可擴展性的常見指標是加速比(Speedup),也就是一個系統進行擴展后相對擴展前的性能提升,
上述這些測量指標,有些指標會彼此約束,不同的分布式系統,針對測量指標,會有不同的側重:
- 電商系統最看重吞吐量,
- IoT最看重資源占用指標,
- 電信業務最看重回應時間、完成時間以及可用性,
- HPC看到通過水平擴展提供系統的加速比,
- 大資料最看重可擴展性,
- 云計算最看重資源開銷,
- 區塊鏈最看重吞吐量和完成時間,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/543048.html
標籤:Java
下一篇:RabbitMQ的使用介紹
