第一章 架構基礎
1.架構設計的復雜度來源
1.1 高性能
1.1.1單機復雜度
1.1.2集群復雜度
集群復雜度包括任務分配的復雜度禾怠,任務分解復雜度榄檬。任務分配器比如硬件網絡設備贮折,或負載均衡的軟件設備蔬胯。任務分解即微服務的拆分嚎朽。
思考:1逾苫、既然將一個大系統(tǒng)分解為多個子系統(tǒng)能夠提升性能卿城,是不是拆分得越細越好呢?答案是否定的铅搓,最主要的原因是如果系統(tǒng)拆分得太細瑟押,為了完成某個業(yè)務,系統(tǒng)間的調用會呈指數(shù)級上升星掰,而系統(tǒng)間的調用通道目前都是通過網絡傳輸?shù)姆绞蕉嗤阅苓h比系統(tǒng)內的函數(shù)調用要低得多。
1.2 高可用
系統(tǒng)的高可用方案五花八門氢烘,但萬變不離其宗便斥,本質上都是通過“冗余”來實現(xiàn)高可用。
高可用又可分為計算高可用和存儲高可用威始,存儲高可用的難點不在于如何備份數(shù)據(jù)枢纠,而在于如何減少或規(guī)避數(shù)據(jù)不一致對業(yè)務造成的影響。
1.3可擴展性
設計具備良好可擴展性的系統(tǒng)黎棠,有兩個基本條件:正確預測變化晋渺、完美封裝變化。
第十章 業(yè)務高可用
1脓斩、異地多活
判斷一個系統(tǒng)是否符合異地多活木西,需要滿足如下兩個標準:
1、正常情況下随静,用戶無論訪問哪一個地點的業(yè)務系統(tǒng)八千,都能夠得到正確的業(yè)務服務。
2燎猛、某地系統(tǒng)異常的情況下恋捆,用戶訪問到其他地方正常的業(yè)務系統(tǒng),也能夠得到正確的業(yè)務服務重绷。