Java高併發的常見應對方案 一、關於併發我們說的高併發是什麼? 在互聯網時代,高併發,通常是指,在某個時間點,有很多個訪問同時到來。 高併發,通常關心的系統指標與業務指標? QPS:每秒鐘查詢量,廣義的,通常指指每秒請求數 響應時間:從請求發出到收到響應花費的時間,例如:系統處理一個HTTP請求需 ...
Java高併發的常見應對方案
一、關於併發我們說的高併發是什麼?
在互聯網時代,高併發,通常是指,在某個時間點,有很多個訪問同時到來。
高併發,通常關心的系統指標與業務指標?
-
QPS:每秒鐘查詢量,廣義的,通常指指每秒請求數
-
響應時間:從請求發出到收到響應花費的時間,例如:系統處理一個HTTP請求需要100ms,這個100ms就是系統的響應時間
-
帶寬:計算帶寬大小需關註兩個指標,峰值流量和頁面的平均大小
-
PV:綜合瀏覽量(Page View),即頁面瀏覽量或者點擊量,通常關註在24小時內訪問的頁面數量,即“日PV”
-
UV:獨立訪問(UniQue Visitor),即去重後的訪問用戶數,通常關註在24小時內訪問的用戶,即“日UV”
二、關於三種應對大併發的常見優化方案
【資料庫緩存】
為什麼是要使用緩存?
緩存數據是為了讓客戶端很少甚至不訪問資料庫,減少磁碟IO,提高併發量,提高應用數據的響應速度。
【CDN加速】
什麼是CDN?
CDN的全稱是Content Delivery Network,CDN系統能夠實時地根據網路流量和各節點的連接、負載狀況以及到用戶的距離等綜合信息將用戶的請求重新導向離用戶最近的服務節點上。
使用CDN的優勢?
CDN的本質是記憶體緩存,就近訪問,它提高了企業站點(尤其含有大量圖片和靜態頁面站點)的訪問速度,跨運營商的網路加速,保證不同網路的用戶都得到良好的訪問質量。
同時,減少遠程訪問的帶寬,分擔網路流量,減輕原站點WEB伺服器負載。
【伺服器的集群化,以及負載均衡】
什麼是七層負載均衡?
七層負載均衡,是基於http協議等應用信息的負載均衡,最常用的就是Nginx,它能夠自動剔除工作不正常的後端伺服器,上傳文件使用非同步模式,支持多種分配策略,可以分配權重,分配方式靈活。
內置策略:IP Hash、加權輪詢
擴展策略:fair策略、通用hash、一致性hash
什麼是加權輪詢策略?
首先將請求都分給高權重的機器,直到該機器的權值降到了比其他機器低,才開始將請求分給下一個高權重的機器,即體現了加權權重,又體現了輪詢。
三、新年禮物
2018年剛開始,送給各位熱愛編程的小伙伴一個福利,免費線上知識分享,不定期JAVA、緩存redis、高併發解決方案、自研MVC框架、百萬數據量索引優化等分享。