分佈式架構系統學習筆記(三)-系統架構設計模式

模式來自於建築學,這樣定義:數據庫

「每個模式描述了一個在咱們周圍不斷重複發生的問題及該問題解決方案的核心。這樣,你就能一次又一次地使用該方案而沒必要作重複工做」。設計模式

模式的關鍵在於模式的可重複性,問題與場景的可重複性帶來解決方案的可重複使用。緩存


系統經常使用的架構設計模式:安全

一、分層服務器

分層是系統中最多見的一種架構模式。從上到下通常分爲:應用層、服務層、數據層。網絡

應用層:負責具體業務和視圖展現(能夠進一步劃分爲:視圖層+業務邏輯層);數據結構

服務層:爲應用層提供服務支持,如用戶管理服務、購物車服務等(能夠進一步劃分爲:數據接口層+邏輯處理層);架構

數據層:提供數據存儲和訪問服務,如數據、緩存、文件等;併發

分層好處:系統切分、便於分工開發和維護;負載均衡

分層原則:層與層之間保持獨立性、保持接口不變、層內部迭代不影響其餘層;

分層挑戰:合理劃分層次邊界和接口、禁止跨層次調用、層次逆向調用;


二、分割

一個層內部,縱向對軟件系統切分。將不一樣業務分割。好比應用層:將購物、論壇、搜索、廣告分割爲不一樣應用。


三、分佈式

好處:分佈式集羣方式提供服務,可使用更多計算機完成一樣功能、機器資源更多、能處理的併發和數據量越大。

劣勢:一、分佈式意味着網絡訪問,網絡開銷增長;二、機器越多,宕機機率越大(一臺宕機可能引發整個服務不可用);三、分佈式下,數據一致性保證難度加大;四、分佈式致使系統依賴錯綜複雜。

經常使用的分佈式方案:一、分佈式應用和服務;二、分佈式靜態資源;三、分佈式數據和存儲;四、分佈式計算;五、分佈式配置;六、分佈式鎖;七、分佈式文件系統。

四、集羣

將獨立部署的服務集羣化(多臺服務器部署相同應用組成一個集羣),再引入負載均衡模塊,作到集羣服務負載均衡。

五、緩存

CDN、反向代理、本地緩存、分佈式緩存。

使用緩存兩個前提:一、數據訪問熱點不均勻,有相似82效應;二、數據具備必定時效性,不會很快過時。不然緩存數據會變成髒數據。

六、異步

異步架構師典型的生產者消費者模式。二者不存在直接調用關係,經過共享數據方式作到異步協做和通訊。另外,只要共享數據結構不變,彼此內部功能能夠隨意迭代升級、互不影響。

異步消息隊列機制:一、提升系統可用性,消費者故髒,數據排隊,生產者能夠繼續響應業務請求;二、加快網站響應速度、將數據寫入隊列後,能夠直接返回;三、消除併發訪問高峯。消息隊列做爲緩衝,不會讓毛刺高峯請求直接衝擊系統,而是放入消息隊列,消費者慢慢消化和化解。

七、冗餘

數據庫冷熱備份、災備中心等。

八、自動化


九、安全