高併發

什麼是高併發

高併發(High Concurrency)是互聯網分佈式系統架構設計中必須考慮的因素之一,它通常是指,通過設計保證系統能夠同時並行處理很多請求。高併發相關常用的一些指標有 響應時間(Response Time),吞吐量(Throughput),每秒查詢率 QPS(Query Per Second),併發用戶數 等。
  • 響應時間: 系統對請求做出響應的時間。例如系統處理一個 HTTP 請求需要 200ms,這個 200ms 就是系統的響應時間。
  • 吞吐量: 單位時間(年,月,日,時,分,秒)內處理的請求數量。
  • QPS: 每秒響應請求數。在互聯網領域,這個指標和吞吐量區分的沒有這麼明顯。
  • 併發用戶數: 同時承載正常使用系統功能的用戶數量。例如一個即時通訊系統,同時在線量一定程度上代表了系統的併發用戶數。

如何提升系統的併發能力

互聯網分佈式架構設計,提高系統併發能力的方式,方法論上主要有兩種:垂直擴展(Scale Up) 與 水平擴展(Scale Out)。

垂直擴展

提升單機處理能力。垂直擴展的方式又有兩種:

  • 增強單機硬件性能,例如:增加 CPU 核數如 32 核,升級更好的網卡如萬兆,升級更好的硬盤如 SSD,擴充硬盤容量如 2T,擴充系統內存如 128G;
  • 提升單機架構性能,例如:使用 Cache 來減少 IO 次數,使用異步來增加單服務吞吐量,使用無鎖數據結構來減少響應時間;

在互聯網業務發展非常迅猛的早期,如果預算不是問題,強烈建議使用 “增強單機硬件性能” 的方式提升系統併發能力,因爲這個階段,公司的戰略往往是發展業務搶時間,而 “增強單機硬件性能” 往往是最快的方法。

不管是提升單機硬件性能,還是提升單機架構性能,都有一個致命的不足:單機性能總是有極限的。所以互聯網分佈式架構設計高併發終極解決方案還是水平擴展。

水平擴展

只要增加服務器數量,就能線性擴充系統性能。水平擴展對系統架構設計是有要求的,如何在架構各層進行可水平擴展的設計,以及互聯網公司架構各層常見的水平擴展實踐,是本文重點討論的內容。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章