1. 程式人生 > >高並發、大流量解決方案

高並發、大流量解決方案

emc http請求 cdn 均衡 mic font 聯網 左右 範圍

一、高並發架構相關概念
1、並發:是指並發的訪問,也就是某個時間點,有多少個訪問同時到來;
通常如果一個系統的日PV在千萬以上,有可能是一個高並發的系統;
2、具體關心什麽?
QPS:每秒請求或查詢的數量,在互聯網領域,指每秒響應請求數;
吞吐量:單位時間內處理的請求量(通常由QPS與並發數決定)
響應時間:從請求發出到收到響應花費的時間,例如一個系統處理一個HTTP請求需要100ms,這個100ms就是系統的響應時間;
PV:綜合瀏覽量,即頁面瀏覽量或者點擊量,一個訪客在24小時內訪問的頁面數量;
UV:獨立訪客 ,即一定時間範圍內相同訪客多次訪問網站,只計算為一個獨立的訪客;
帶寬:計算帶寬大小需要關註兩個指標,峰值流量和頁面的平均大小;


日網站帶寬=pv/統計時間(換算到秒)*平均頁面大小(單位kB)*8
峰值一般是平均值的倍數;
QPS不等於並發連接數,QPS是每秒HTTP請求數量,並發連接數是系統同時處理的請求數量;
峰值每秒請求數(QPS) = (總PV書*80%)/(6小時秒數*20%)
壓力測試:測試能承受的最大並發,測試最大承受的QPS值
測試工具(ab):目標是URL,可以創建多個訪問線程對同一個URL進行訪問(Nginx);
ab的使用:模擬並發請求100次(100個人),總共請求5000次(每個人請求5000次)
ab -c 100 -n 5000 待測試網站(內存和網絡不超過最高限度的75%)
QPS達到50:一般的服務器就可以應付;
QPS達到100:假設關系型數據庫的每次請求在0.01秒完成(理想),假設單頁面只有一個SQL查詢,那麽100QPS意味著1秒中完成100次請求,但此時我們不能保證數據庫查詢能完成100次;

方案:數據庫緩存層、數據庫的負載均衡;
QPS達到800:假設我們使用 百兆寬帶,意味著網站出口的實際帶寬是8M左右,假設每個頁面是有10k,在這個並發的條件下,百兆帶寬已經被吃完;
方案:CDN加速、負載均衡
QPS達到1000:假設使用memcache緩存數據庫查詢數據,每個頁面對memcache請求遠大於直接對DB的請求;
memacache的悲觀並發數在2W左右,但有可能之前內網帶寬已經被吃光,表現出不穩定:
方案:靜態HTML緩存

QPS達到2000:文件系統訪問鎖都成為了災難;
方案:做業務分離,分布式存儲;
二、高並發解決方案案例:
流量優化:防盜鏈處理(把一些惡意的請求拒之門外)
前端優化:減少HTTP請求、添加異步請求、啟用瀏覽器的緩存和文件壓縮、CDN加速、建立獨立的圖片服務器;


服務端優化:頁面靜態化處理、並發處理、隊列處理;
數據庫優化:數據庫的緩存、分庫分表、分區操作、讀寫分離、負載均衡
web服務器優化:負載均衡;

高並發、大流量解決方案