架構修煉 10 高併發設計

2021-10-10 03:32:57 字數 1258 閱讀 1835

1.吞吐量throughput:

2.響應延遲response delay:

1.縮短響應時間

2.提高系統併發數(提公升吞吐量)

3.系統處理合理狀態(機器利用率)

y座標:綠色機器利用率,紫色併發數,藍色:響應時長

響應時間和併發資料在左邊線位置達到優化目標,之後利用率60%提公升非常緩慢,當超過右側線是,系統效能急劇下降。

例如:增加快取,復用計算結果,降低時間開銷,因為cpu的時間較記憶體容量而言更加昂貴。

2.時間換空間:當資料大小是瓶頸時使用。

3.找到系統瓶頸:分析業務流程,找到關鍵路徑,分解優化

例如:呼叫了多少rpc介面,載入多少資料,使用什麼演算法,非核心流程是否非同步化,沒有依賴邏輯是否並行化

原則:從整體到細節,從全域性視角到區域性視角

1.架構設計層次優化:如何拆分系統;如何使各個部分負責更加均衡;充分發揮硬體效能優勢;減少系統內部開銷

a.系統微服務化

垂直拆分:閘道器層,業務邏輯層,資料訪問層,判斷實現需要加入mq改造為非同步化系統

水平拆分:先完成服務無狀態化改造,進行水平擴充套件

b.呼叫鏈梳理,熱點資料靠近使用者

c.分布式cache,多級多型別快取

d.提前拒絕,保證柔性可用

e.容量規劃

f.分庫分表,讀寫分離,資料分片

2.演算法邏輯層次優化

a.關注演算法是否高效,邏輯優化,空間時間優化,任務並行,無鎖資料結構

c.時間換空間:採用壓縮演算法資料,增加邏輯計算,只傳輸結果減少資料傳輸

3.**層次優化

a.**實現邏輯是否合理

b.物件建立多少

c.迴圈是否高效

d.cache是否復用

e.是否重用計算結果

朋友圈feed系統

設計自己的高併發架構

在網際網路行業,未來的趨勢就是高併發 分布式系統。作為一名網際網路開發人員,一定要把握發展趨勢,並沿著正確的路線提公升自己。我也是剛剛開始了解什麼是高併發 分布式的系統,怎樣進行這種系統的架構設計。我覺得學習的思路應該是 根據了解到的內容,參考已經存在的方案,自己思考,並動手設計一套自己的系統架構,...

高併發系統設計 軟體架構

單體架構 單體架構一般用於專案初期,方便盡早的將專案搭建起來。主要有以下特點 開發簡單,和專案集中式管理 運維簡單,節省維護成本 排查問題簡單,方便問題定位 當專案規模變大時,也會遇到以下問題 容易形成瓶頸,當所有功能處於乙個程式中,請求量變大後,容易占用過多資源 管理麻煩,開發人員變多後,容易形成...

架構設計原則 高併發

架構設計原則 高併發 高併發設計可以從以下幾方面考慮 1.無狀態 無狀態的應用容易進行水平擴充套件。實際常用 應用無狀態,配置檔案有狀態,例如,不同的機房讀取不同的配置檔案,通過配置中心指定。2.拆分 拆分維度 3.服務化 服務化需要考慮自動服務註冊,和服務發現,還有服務的分組 隔離,例如,有的系統...