第一章 架構(gòu)基礎(chǔ)
1.架構(gòu)設(shè)計(jì)的復(fù)雜度來源
1.1 高性能
1.1.1單機(jī)復(fù)雜度
1.1.2集群復(fù)雜度
集群復(fù)雜度包括任務(wù)分配的復(fù)雜度,任務(wù)分解復(fù)雜度。任務(wù)分配器比如硬件網(wǎng)絡(luò)設(shè)備,或負(fù)載均衡的軟件設(shè)備。任務(wù)分解即微服務(wù)的拆分。
思考:1、既然將一個(gè)大系統(tǒng)分解為多個(gè)子系統(tǒng)能夠提升性能,是不是拆分得越細(xì)越好呢?答案是否定的,最主要的原因是如果系統(tǒng)拆分得太細(xì),為了完成某個(gè)業(yè)務(wù),系統(tǒng)間的調(diào)用會(huì)呈指數(shù)級(jí)上升,而系統(tǒng)間的調(diào)用通道目前都是通過網(wǎng)絡(luò)傳輸?shù)姆绞?,性能遠(yuǎn)比系統(tǒng)內(nèi)的函數(shù)調(diào)用要低得多。
1.2 高可用
系統(tǒng)的高可用方案五花八門,但萬變不離其宗,本質(zhì)上都是通過“冗余”來實(shí)現(xiàn)高可用。
高可用又可分為計(jì)算高可用和存儲(chǔ)高可用,存儲(chǔ)高可用的難點(diǎn)不在于如何備份數(shù)據(jù),而在于如何減少或規(guī)避數(shù)據(jù)不一致對(duì)業(yè)務(wù)造成的影響。
1.3可擴(kuò)展性
設(shè)計(jì)具備良好可擴(kuò)展性的系統(tǒng),有兩個(gè)基本條件:正確預(yù)測(cè)變化、完美封裝變化。
第十章 業(yè)務(wù)高可用
1、異地多活
判斷一個(gè)系統(tǒng)是否符合異地多活,需要滿足如下兩個(gè)標(biāo)準(zhǔn):
1、正常情況下,用戶無論訪問哪一個(gè)地點(diǎn)的業(yè)務(wù)系統(tǒng),都能夠得到正確的業(yè)務(wù)服務(wù)。
2、某地系統(tǒng)異常的情況下,用戶訪問到其他地方正常的業(yè)務(wù)系統(tǒng),也能夠得到正確的業(yè)務(wù)服務(wù)。