【讀書筆記】大型網站核心架構要素

大型網站核心架構要素

性能

瀏覽器端:瀏覽器緩存、頁面壓縮、合理頁面佈局、減少 Cookie 傳出、CDN。
應用服務器端:本地緩存、分佈式緩存、異步操作、服務器集羣。
代碼層面:多線程、改善內存管理等。
數據庫端:索引、緩存、SQL 優化等性能優化手段、NoSQL 優化數據模型、存儲結構、伸縮性。

可用性

假設系統中任何一臺或多臺服務器宕機時,以及出現各種不可預期的問題時,系統整體依然保持可用。
提高網站可用性的主要手段是冗餘。
1、對於應用服務器,多臺服務器負載均衡,前提是應用服務器上不能保存請求的回話信息(小姐姐小哥哥游泳健身表單)。
2、對於存儲服務器,實時熱備份。
3、開發過程質量保證,預發佈驗證、自動化測試、自動化發佈、灰度發佈,減少將故障引入線上環境。

伸縮性

所謂伸縮性是指通過不斷向及羣衆加入服務器的手段來緩解不斷上升的用戶併發訪問壓力和不斷增長的數據存儲需求。

1、對於應用服務器集羣,只要服務器上不保存數據,所有服務器都是對等的,通過合適的負載均衡設備就可以向進羣中不斷添加服務器。
2、對於緩存服務器集羣,加入新的服務器可能會導致緩存路由失敗,進而導致及羣衆大部分緩存數據無法訪問。雖然緩存的數據可以通過數據庫重新加載,但是如果應用已經嚴重依賴緩存,可能會導致整個網站崩潰,需要改進緩存路由算法保證緩存數據的可訪問性。
3、數據庫雖然支持數據複製,主從熱備等機制,但是很難做到大規模集羣的可伸縮性,因此關係數據庫的集羣伸縮性方案必須在數據庫之外實現,通過路由分區等手段將部署有多個數據庫的服務器組成一個集羣。

至於 NoSQL 數據庫,天生就是爲海量數據而生,伸縮性通常都非常好。

擴展性

增加新的業務產品時,是否可以實現對現有產品透明吳映香,不需要任何改動或者很少的搞懂現有業務功能就可以上線新的產品。不同產品之間的少耦合。
網站可擴展架構的主要手段是事件驅動和分佈式服務。

事件驅動架構在網站通常利用消息隊列來實現,分佈式服務則是將業務和可複用服務分離開來,通過分佈式服務框架調用。

安全性

現存和潛在的攻擊和竊密手段,是否有可靠的應對策略。


EOF

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