從本文開(kāi)始,我們將開(kāi)始介紹關(guān)于系統(tǒng)設(shè)計(jì)的內(nèi)容,也就是如何實(shí)現(xiàn)一個(gè)復(fù)雜系統(tǒng)的設(shè)計(jì)。
首先介紹比較基礎(chǔ)的概念:垂直擴(kuò)展和水平擴(kuò)展。這兩個(gè)概念的提出,是由于當(dāng)前系統(tǒng)對(duì)于請(qǐng)求的處理能力不足,需要進(jìn)行處理能力的擴(kuò)展。通俗上來(lái)講,垂直擴(kuò)展等于升級(jí)服務(wù)器,水平擴(kuò)展等于增加服務(wù)器。
這里我們假設(shè)大家都有一定的分布式系統(tǒng)的經(jīng)驗(yàn),對(duì)于這兩個(gè)概念本身不做過(guò)多的贅述,重點(diǎn)關(guān)注下兩種擴(kuò)展方式的優(yōu)缺點(diǎn)對(duì)比。
| 比較點(diǎn) | 水平擴(kuò)展 | 垂直擴(kuò)展 |
|---|---|---|
| 可用性 | 彈性部署(Resilient) | 單點(diǎn)故障(Single Point of failure) |
| 可擴(kuò)展性 | 請(qǐng)求量增加可增加機(jī)器 | 硬件限制 |
| 請(qǐng)求方式 | 負(fù)載均衡(Load Balance) | N/A |
| 調(diào)用速度 | 網(wǎng)絡(luò)調(diào)用(RPC) | 內(nèi)部通信(Internal Process Communication) |
| 數(shù)據(jù)一致性 | 可能出現(xiàn)不一致 | 始終一致 |
可以看出,這兩種擴(kuò)展方式并沒(méi)有絕對(duì)的好壞之分。垂直擴(kuò)展的優(yōu)點(diǎn)在于方法簡(jiǎn)單,數(shù)據(jù)狀態(tài)維護(hù)簡(jiǎn)單,方法內(nèi)部調(diào)用速度塊;水平擴(kuò)展的優(yōu)點(diǎn)在于可用性和可擴(kuò)展性的都較好。
由于水平擴(kuò)展是目前互聯(lián)網(wǎng)服務(wù)的主流設(shè)計(jì)方式,后面我們將主要針對(duì)水平擴(kuò)展的相關(guān)知識(shí)點(diǎn)進(jìn)行介紹。
歡迎大家訂閱專題,其中包含了系統(tǒng)設(shè)計(jì)基礎(chǔ)系列的全部文章:System Design