天天看點

抗住百萬高并發的 6 個關鍵技術!

一、什麼是高并發

高并發(High Concurrency)是網際網路分布式系統架構設計中必須考慮的因素之一,它通常是指,通過設計保證系統能夠同時并行處理很多請求。

高并發相關常用的一些名額有響應時間(Response Time),吞吐量(Throughput),每秒查詢率QPS(Query Per Second),每秒事務處理量TPS(Transaction Per Second),并發使用者數等。

響應時間:系統對請求做出響應的時間。

吞吐量:機關時間内處理的請求數量。

QPS:每秒響應查詢請求數。

TPS:每秒響應事務請求數。

并發使用者數:同時承載正常使用系統功能的使用者數量。

二、提升系統的并發能力

網際網路分布式架構設計,提高系統并發能力的方式,方法論上主要有兩種:垂直擴充(Scale Up)與水準擴充(Scale Out)。

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

1)增強單機硬體性能,例如:增加CPU核數如32核,更新更好的網卡如萬兆,更新更好的硬碟如SSD,擴充硬碟容量如2T,擴充系統記憶體如128G;

2)提升單機架構性能,例如:使用Cache來減少IO次數,使用異步來增加單服務吞吐量,使用無鎖資料結構來減少響應時間;

(2)水準擴充:隻要增加伺服器數量,就能線性擴充系統性能。水準擴充對系統架構設計是有要求的,如何在架構各層進行可水準擴充的設計是本文重點讨論的内容。

抗住百萬高并發的 6 個關鍵技術!

1、系統叢集化部署+負載均衡

(1)添加負載均衡層,将請求均勻打到系統層。

(2)系統層采用叢集化多活部署,扛住初步的并發壓力。

2、資料庫分庫分表+讀寫分離+分布式資料庫

(1)分庫分表:水準拆分、垂直拆分(弊端太多如關聯查詢)。

(2)讀寫分離:主庫寫,從庫讀(資料同步延遲)。

(3)分布式資料庫:TiDB(HTAP、相容MySQL協定、水準擴充、分布式事務)

3、緩存

(1)本地緩存:本地磁盤或記憶體。

(2)分布式緩存:用緩存叢集抗住大量的讀請求。

(3)預緩存,多級緩存。

4、消息中間件

(1)系統解耦,資料同步。

(2)請求異步化處理,實作削峰填谷的效果。

5、應用拆分(微服務)

(1)按業務拆分、減少耦合。

(2)分級部署,擴容縮容。

(3)應用資源隔離。

6、CDN(内容分發網絡)

(1)盡可能避開網際網路上有可能影響資料傳輸速度和穩定性的瓶頸和環節, 使内容傳輸的更快更穩定。

(2)CDN能夠實時地根據網絡流量和各節點的連結,負載狀況以及到使用者的距離和響應時間等綜合資訊将使用者的請求重新導向離使用者最近的服務節點上。

本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利。

繼續閱讀