【讀書筆記】大型網站架構模式

2、大型網站架構模式

每一個模式描述了一個在我們周圍不斷重複大聲的問題以及問題解決方案的核心。

分層

將系統橫向切分。
分層結構在計算機中無處不在,網絡的 ISO 7層分層,計算機硬件、操作系統、應用軟件也是一種分層。
網站系統中:應用層、服務層、數據層。
分層架構的挑戰:合理規劃層次邊界和接口。
進制跨層次的調用(應用層直接調用數據層)和逆向調用(數據層調用服務層,或者服務層調用應用層)。

分割

將系統縱向切分。
將每一層按模塊進行分割,每個模塊由不同的團隊負責。

分佈式

分佈式應用和服務、分佈式靜態資源、分佈式數據和存儲、分佈式計算(Hadoop 的 MapReduce 分佈式計算框架,移動計算而不是移動數據)。

集羣

使用分佈式已經將分層和分割後的模塊獨立部署,但是對於用戶訪問集中的模塊(比如網站首頁),還需要將獨立部署的服務器集羣化,即多態服務器部署相同應用構成一個集羣,通過負載均衡設備共同對外提供服務。

緩存

CDN、反向代理、本地緩存、分佈式緩存。
使用緩存有兩個條件:
1、數據訪問熱點不均衡,某些數據會被更頻繁的訪問;
2、數據再某個時間段內有效,不會很快過期,否則緩存的數據會因已經失效而產生髒讀,影響正確性。

異步

單一服武器內部可以通過多線程共享內存隊列的方式實現異步,業務線程將輸出寫入隊列,處理線程從隊列讀取進行處理;
分佈式系統中,多個服務器集羣通過分佈式消息隊列實現異步(內存隊列的分佈式部署)。
異步架構是典型的生產者消費者模型,兩者不存在直接調用,只需要保持數據結構不變,彼此功能實現可以隨意變化而不相互影響,這對網站拓展新功能非常便利。

使用異步隊列還有如下特性:
1、提供系統可用性,消費者服務器故障,數據再消息隊列中堆積,生產者繼續處理就可以了。
2、加快網站響應速度,業務端將請求寫入消息隊裏,不需要等待消費者處理就可以返回。
3、消除併發訪問高峯,消息隊列將突然增加的訪問請求數據放入消息隊列中,等待消費者服務器依次處理。

冗餘

定期備份,冷備份。
主從熱備份。
容災數據中心。
去中心化。

自動化

發佈過程自動化、自動化代碼管理、自動化測試、自動化安全監測、自動化部署、自動化監控、自動化報警、自動化失效轉移、自動化失效恢復、自動化降級(網站遇到高峯超出處理能力,爲了保證整個網站安全可用,關閉一些不用的服務或者拒絕部分請求)、自動化分配資源。

安全

加密、安全校驗、風險控制。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章