高併發系統設計方法

2022-05-17 21:34:45 字數 1161 閱讀 9943

在網際網路時代,併發,高併發通常是指併發訪問。也就是在某個時間點,有多少個訪問同時到來。

1、qps (每秒查詢率) : 每秒鐘請求或者查詢的數量,在網際網路領域,指每秒響應請求數(指http請求)

2、pv(page view):綜合瀏覽量,即頁面瀏覽量或者點選量,乙個訪客在24小時內訪問的頁面數量

3、吞吐量(fetches/sec) :單位時間內處理的請求數量 (通常由qps和併發數決定)

6、頻寬:計算頻寬需關注兩個指標,峰值流量和頁面的平均大小

1、qps不等於併發連線數(qps是每秒http請求數量,併發連線數是系統同時處理的請求數量)

2、峰值每秒請求數(qps)= (總pv數*80%)/ (六小時秒數*20%)【代表80%的訪問量都集中在20%的時間內】

3、壓力測試: 測試能承受的最大併發數 以及測試最大承受的qps值

4、常用的效能測試工具【ab,wrk,httpload,web bench,siege,apache jmeter】

1、當qps小於50時

優化方案:為一般小型**,不用考慮優化

2、當qps達到100時,遇到資料查詢瓶頸

優化方案: 資料庫快取層,資料庫的負載均衡

3、當qps達到800時, 遇到頻寬瓶頸

優化方案:cdn加速,負載均衡

4、當qps達到1000時

優化方案: 做html靜態快取

5、當qps達到2000時

優化方案: 做業務分離,分布式儲存

1、流量優化  

防盜煉處理(去除惡意請求)

2、前端優化

(1) 減少http請求[將css,js等合併]

(2) 新增非同步請求(先不將所有資料都展示給使用者,使用者觸發某個事件,才會非同步請求資料)

(3) 啟用瀏覽器快取和檔案壓縮

(4) cdn加速

(5) 建立獨立的伺服器(減少i/o)

3、服務端優化

(1) 頁面靜態化

(2) 佇列處理

4、資料庫優化(針對大資料量)

(1) 資料庫快取

(2) 分庫分表

(3) 讀寫分離

(4) 設計好的索引

(5) 優化sql

5、web伺服器優化

(1) nginx反向**實現負載均衡

(2) lvs實現負載均衡

高併發系統設計

高併發系統主要是為了解決在有限的資源下解決最核心的問題,並發現以後可能會出現的問題。高併發原則一般遵守如下幾個設計原則 1.無狀態 指的是應用在處理業務邏輯期間盡量減少鎖的使用 降低網路通訊延遲 無資料持久化操作等,以此來增加應用系統的效能。2.拆分 大而全的系統,可根據實際的訪問量來拆分系統,來實...

高併發系統設計 限流

前面學習過的熔斷和降級都是通過暫時關閉某些非核心服務或者元件來保護核心系統的可用性。但是並不是所有的場景下都可以使用熔斷降級的策略,例如當核心服務產生比較大的影響時,總不能把核心服務進行熔斷與降級,些時一般採用限流方案來進行保護。限流指的是通過限制到達系統的併發請求數量,保證系統能夠正常響應部分使用...

面試 高併發系統設計

在高併發的情景下進行系統設計,可以分為以下 6 點 快取mq 分庫分表 讀寫分離 elasticsearch 將乙個系統拆分為多個子系統,用 rpc 來搞。然後每個系統連乙個資料庫,這樣本來就乙個庫,現在多個資料庫,不也可以扛高併發麼。大部分的高併發場景,都是讀多寫少,那你完全可以在資料庫和快取裡都...