抗住百萬(wàn)高并發(fā)的 6 個(gè)關(guān)鍵技術(shù)
前言
一、什么是高并發(fā)
高并發(fā)(High Concurrency)是互聯(lián)網(wǎng)分布式系統(tǒng)架構(gòu)設(shè)計(jì)中必須考慮的因素之一,它通常是指,通過(guò)設(shè)計(jì)保證系統(tǒng)能夠同時(shí)并行處理很多請(qǐng)求。
高并發(fā)相關(guān)常用的一些指標(biāo)有響應(yīng)時(shí)間(Response Time), 吞吐量(Throughput), 每秒查詢率QPS(Query Per Second), 每秒事務(wù)處理量TPS(Transaction Per Second),并發(fā)用戶數(shù)等。
-
響應(yīng)時(shí)間:系統(tǒng)對(duì)請(qǐng)求做出響應(yīng)的時(shí)間。 -
吞吐量:?jiǎn)挝粫r(shí)間內(nèi)處理的請(qǐng)求數(shù)量。 -
QPS:每秒響應(yīng)查詢請(qǐng)求數(shù)。 -
TPS:每秒響應(yīng)事務(wù)請(qǐng)求數(shù)。 -
并發(fā)用戶數(shù):同時(shí)承載正常使用系統(tǒng)功能的用戶數(shù)量。
二、提升系統(tǒng)的并發(fā)能力
互聯(lián)網(wǎng)分布式架構(gòu)設(shè)計(jì),提高系統(tǒng)并發(fā)能力的方式,方法論上主要有兩種:垂直擴(kuò)展(Scale Up)與水平擴(kuò)展(Scale Out)。
(1)垂直擴(kuò)展:提升單機(jī)處理能力。垂直擴(kuò)展的方式又有兩種:
-
增強(qiáng)單機(jī)硬件性能,例如:增加CPU核數(shù)如32核,升級(jí)更好的網(wǎng)卡如萬(wàn)兆,升級(jí)更好的硬盤如SSD,擴(kuò)充硬盤容量如2T,擴(kuò)充系統(tǒng)內(nèi)存如128G; -
提升單機(jī)架構(gòu)性能,例如:使用Cache來(lái)減少IO次數(shù),使用異步來(lái)增加單服務(wù)吞吐量,使用無(wú)鎖數(shù)據(jù)結(jié)構(gòu)來(lái)減少響應(yīng)時(shí)間;
(2)水平擴(kuò)展:只要增加服務(wù)器數(shù)量,就能線性擴(kuò)充系統(tǒng)性能。水平擴(kuò)展對(duì)系統(tǒng)架構(gòu)設(shè)計(jì)是有要求的,如何在架構(gòu)各層進(jìn)行可水平擴(kuò)展的設(shè)計(jì)是本文重點(diǎn)討論的內(nèi)容。
1、「系統(tǒng)集群化部署+負(fù)載均衡」
-
添加負(fù)載均衡層,將請(qǐng)求均勻打到系統(tǒng)層。 -
系統(tǒng)層采用集群化多活部署,扛住初步的并發(fā)壓力。
2、「數(shù)據(jù)庫(kù)分庫(kù)分表+讀寫分離+分布式數(shù)據(jù)庫(kù)」
-
分庫(kù)分表:水平拆分、垂直拆分(弊端太多如關(guān)聯(lián)查詢)。 -
讀寫分離:主庫(kù)寫,從庫(kù)讀(數(shù)據(jù)同步延遲)。 -
分布式數(shù)據(jù)庫(kù):TiDB(HTAP、兼容MySQL協(xié)議、水平擴(kuò)展、分布式事務(wù))
3、「緩存」
-
本地緩存:本地磁盤或內(nèi)存。 -
分布式緩存:用緩存集群抗住大量的讀請(qǐng)求。 -
預(yù)緩存,多級(jí)緩存。
4、「消息中間件」
-
系統(tǒng)解耦,數(shù)據(jù)同步。 -
請(qǐng)求異步化處理,實(shí)現(xiàn)削峰填谷的效果。
5、「應(yīng)用拆分(微服務(wù))」
-
按業(yè)務(wù)拆分、減少耦合。 -
分級(jí)部署,擴(kuò)容縮容。 -
應(yīng)用資源隔離。
6、「CDN(內(nèi)容分發(fā)網(wǎng)絡(luò))」
-
盡可能避開(kāi)互聯(lián)網(wǎng)上有可能影響數(shù)據(jù)傳輸速度和穩(wěn)定性的瓶頸和環(huán)節(jié), 使內(nèi)容傳輸?shù)母旄€(wěn)定。 -
CDN能夠?qū)崟r(shí)地根據(jù)網(wǎng)絡(luò)流量和各節(jié)點(diǎn)的鏈接,負(fù)載狀況以及到用戶的距離和響應(yīng)時(shí)間等綜合信息將用戶的請(qǐng)求重新導(dǎo)向離用戶最近的服務(wù)節(jié)點(diǎn)上。
送福利
一共兩份福利:
「RocketMQ高并發(fā)實(shí)戰(zhàn)視頻 附 源碼」
「優(yōu)質(zhì)面試題」
獲取方式
-
發(fā)送 1000 獲取高并發(fā)實(shí)戰(zhàn)視頻教程附源碼 -
發(fā)送 面試 獲取優(yōu)質(zhì)面試題
掃描下方二維碼??,輸入口令即可獲取
