大型網站技術架構——2. 網站架構模式
[TOC]
2. 網站架構模式
「模式」的定義:
每一個模式描述了一個在我們周圍不斷重複發生的問題及該問題的解決方案的核心。
模式的關鍵——模式的可重複性。
2.1 分層
將系統在橫向維度上切分成幾個部分,每個部分負責一部分相對比較單一的職責,然後通過上層對下層的依賴和呼叫組成一個完整的系統。
分層架構模式的目的:規劃軟體清晰的邏輯結構便於開發維護,支援網站從高併發向分散式方向發展。
網站分層架構 | 職責 |
---|---|
應用層 | 負責具體業務和檢視展示,如網站首頁及搜尋輸入和結果展示。 |
服務層 | 為應用層提供服務支援,如使用者管理服務,購物車服務。 |
資料層 | 提供資料儲存訪問服務,如資料庫、快取、檔案、搜尋引擎等。 |
應用層可以繼續細分為:檢視層、業務邏輯層。
服務層可以繼續細分為:資料介面層、邏輯處理層。
分層面臨的挑戰:
- 合理規劃層次邊界和介面;
- 開發過程中,需要嚴格遵守分層架構約束,禁止跨層次呼叫及逆向呼叫。
2.2 分割
分割是在縱向上對軟體進行切分。
網站越大,功能越複雜,服務和資料處理的種類也越多,將這些不同的功能和服務分割開來,包裝成高內聚低耦合的模組單元,一方面有助於軟體的開發和維護;另一方面,便於不同模組的分散式部署,提高網站的併發處理能力和功能擴充套件能力。
大型網站分割的顆粒度可能會很小。
2.3 分散式
對於大型網站,分層和分割的一個主要目的是為了切分後的模組便於分散式部署,即將不同模組部署在不同的伺服器上,通過遠端呼叫協同工作。
分散式意味著可以使用更多的計算機完成同樣的功能,計算機越多,CPU、記憶體、儲存資源也就越多,能夠處理的併發訪問和資料量就越大,進而能夠為更多的使用者提供服務。
分散式在解決高併發問題的同時帶來的困難:
- 服務呼叫必須通過網路,影響服務效能。
- 伺服器越多,當機的概率也越大,降低了網站可用性。
- 分散式資料庫如何保持資料一致性。
4,分散式事務難以保證。 - 網站依賴錯綜複雜,增加了開發管理維護成本。
2.4 叢集
對於訪問集中的模組,需要將獨立部署的伺服器叢集化,即多臺伺服器部署相同應用構成一個叢集,通過負載均衡裝置共同對外提供服務。
叢集可以提高系統的併發性、可用性。
2.5 快取
快取就是將資料存放在距離計算最近的位置以加快處理速度。
使用快取的兩個前提條件:
- 資料訪問熱點不均勻;
- 資料在某個時段內有效,不會很快過期,否則快取的資料就會因為已經失效而產生髒讀,影響結果的正確性。
2.6 非同步
- 在單一伺服器內部可通過多執行緒共享記憶體佇列的方式實現非同步,處在業務操作前面的執行緒將輸出寫入到佇列,後面的執行緒從佇列中讀取資料進行處理;
- 在分散式系統中,多個伺服器叢集通過分散式訊息佇列實現非同步,分散式訊息佇列可以看作記憶體佇列的分散式部署。
使用非同步訊息佇列的特性:
- 提高系統可用性;
- 加快網站響應速度;
- 消除併發訪問高峰;
2.7 冗餘
- 通過冗餘實現服務高可用:伺服器冗餘執行、資料庫冗餘備份。
- 資料庫冷備份:定期備份,存檔儲存。
- 資料庫熱備份:主從分離、同步備份。
- 備份整個資料中心。
- 全球範圍內部署災備資料中心。
2.8 自動化
2.9 安全
- 通過密碼和手機校驗碼進行身份認證。
- 通訊加密。
- 驗證碼。
- 編碼轉換防止 XSS、SQL隱碼攻擊等網站攻擊。
- 垃圾資訊、敏感資訊過濾機制。
- 交易風險控制系統。
相關文章
- 大型網站技術架構(三)--架構模式網站架構模式
- 大型網站技術架構(四)--核心架構要素網站架構
- 大型網站架構利器-CDN技術網站架構
- 大型網站技術架構核心原理(1)網站架構
- 大型網站架構模式筆記網站架構模式筆記
- 網站技術架構網站架構
- 一張圖看懂大型網站技術架構網站架構
- 讀書筆記-大型網站技術架構筆記網站架構
- 《大型網站技術架構:核心原理與案例分析》讀書筆記 - 第4篇 架構師(附 大型網站架構技術一覽)網站架構筆記
- 乾貨 | 大型網站專案架構技術一覽網站架構
- 大型網站系統架構演化網站架構
- 大型網站架構之我見網站架構
- 大型網站架構演化歷程網站架構
- 大型網際網路公司網站架構背後的基礎技術2019網站架構
- 讀書筆記 之《軟體架構設計: 大型網站技術架構與業務架構融合之道》筆記架構網站
- 《大型網站技術架構:核心原理與案例分析》讀書筆記 - 第2篇 架構網站架構筆記
- 大型網站架構演化發展歷程網站架構
- 大型網站架構演化發展歷程 - 上網站架構
- 思維導圖形式帶你讀完《大型網站技術架構》上網站架構
- 思維導圖形式帶你讀完《大型網站技術架構》中網站架構
- 《大型網站技術架構核心原理與案例分析》讀書筆記(二)網站架構筆記
- 網站架構設計網站架構
- 阿里面試技術手冊(二):大型網站架構演化發展歷程阿里面試網站架構
- 大型分散式網站架構實戰專案分析分散式網站架構
- 大型網站的可伸縮性架構如何設計?網站架構
- 【網站架構13/100】一步步帶你,如何網站架構網站架構
- 《大型網站技術架構:核心原理與案例分析》讀書筆記 - 第3篇 案例網站架構筆記
- 《大型網站技術架構:核心原理與案例分析》讀書筆記 - 第1篇 概述網站架構筆記
- 初入探秘:大型網站架構設計與方法總結網站架構
- 乾貨:記一次JavaWeb網站技術架構總結JavaWeb網站架構
- 大型網際網路架構概述架構
- 大型網站架構演進的五大階段盤點網站架構
- 大型網站背後的高效能系統架構設計網站架構
- 高併發網站架構設計網站架構
- [譯] 多網站專案的 CSS 架構網站CSS架構
- 網站技術架構與效能優化,附高效能思維導圖網站架構優化
- B站公網架構實踐及演進架構
- 2024最流行的網站架構----邊緣平臺架構:概念與產品網站架構