一、什麼是高併發
對於web專案,隨著使用者量的增加就有可能產生高併發的問題。高併發簡單的來說就是在同一時刻不同使用者訪問同一資源的問題,專業一點的說法就是在同一時刻有多個執行緒訪問了同乙個資料資源
高併發(high concurrency)是網際網路分布式系統架構設計中必須考慮的因素之一,它通常是指,通過設計保證系統能夠同時並行處理很多請求。
高併發相關常用的一些指標有響應時間(response time),吞吐量(throughput),每秒查詢率qps(query per second),併發使用者數等。
吞吐量:單位時間內處理的請求數量。
qps:每秒響應請求數。在網際網路領域,這個指標和吞吐量區分的沒有這麼明顯。
二、如何提公升系統的併發能力
網際網路分布式架構設計,提高系統併發能力的方式,方**上主要有兩種:垂直擴充套件(scale up)與水平擴充套件(scale out)。
垂直擴充套件:提公升單機處理能力。垂直擴充套件的方式又有兩種:
(1)增強單機硬體效能,例如:增加cpu核數如32核,公升級更好的網絡卡如萬兆,公升級更好的硬碟如ssd,擴充硬碟容量如2t,擴充系統記憶體如128g;
(2)提公升單機架構效能,例如:使用cache來減少io次數,使用非同步來增加單服務吞吐量,使用無鎖資料結構來減少響應時間;
在網際網路業務發展非常迅猛的早期,如果預算不是問題,強烈建議使用「增強單機硬體效能」的方式提公升系統併發能力,因為這個階段,公司的戰略往往是發展業務搶時間,而「增強單機硬體效能」往往是最快的方法。
不管是提公升單機硬體效能,還是提公升單機架構效能,都有乙個致命的不足:單機效能總是有極限的。所以網際網路分布式架構設計高併發終極解決方案還是水平擴充套件。
三、總結
高併發(high concurrency)是網際網路分布式系統架構設計中必須考慮的因素之一,它通常是指,通過設計保證系統能夠同時並行處理很多請求。
提高系統併發能力的方式,方**上主要有兩種:垂直擴充套件(scale up)與水平擴充套件(scale out)。前者垂直擴充套件可以通過提公升單機硬體效能,或者提公升單機架構效能,來提高併發性,但單機效能總是有極限的,網際網路分布式架構設計高併發終極解決方案還是後者:水平擴充套件。
網際網路分層架構中,各層次水平擴充套件的實踐又有所不同:
(1)反向**層可以通過「dns輪詢」的方式來進行水平擴充套件;
(2)站點層可以通過nginx來進行水平擴充套件;
(3)服務層可以通過服務連線池來進行水平擴充套件;
(4)資料庫可以按照資料範圍,或者資料雜湊的方式來進行水平擴充套件;
各層實施水平擴充套件後,能夠通過增加伺服器數量的方式來提公升系統的效能,做到理論上的效能無限。
什麼是高併發 ,詳細講解什麼是高併發 ,詳細講解
高併發 high concurrency 是網際網路分布式系統架構設計中必須考慮的因素之一,它通常是指,通過設計保證系統能夠同時並行處理很多請求。高併發相關常用的一些指標有響應時間 response time 吞吐量 throughput 每秒查詢率qps query per second 併發使用...
高併發的詳細理解
一 什麼是高併發 高併發 high concurrency 是網際網路分布式系統架構設計中必須考慮的因素之一,它通常是指,通過設計保證系統能夠同時並行處理很多請求。高併發相關常用的一些指標有響應時間 response time 吞吐量 throughput 每秒查詢率qps query per se...
高併發 高可用
高併發 提高系統併發能力的方法主要有兩種 前者垂直擴充套件可以通過提公升單機硬體效能,或者提公升單機架構效能,來提高併發性,但單機效能總是有極限的,網際網路分布式架構設計高併發終極解決方案還是後者 水平擴充套件。網際網路分層架構中,各層次水平擴充套件的實踐又有所不同 1 反向 層可以通過 dns輪詢...