1. 程式人生 > >大型網站技術架構讀書筆記02—大型網站架構模式

大型網站技術架構讀書筆記02—大型網站架構模式

模式描述了一個在我們周圍不斷重複發生的問題以及該問題解決方案的核心

為了解決大型網站面臨的高訪問高併發、海量資料、高可靠執行等一系問題和挑戰,大型網際網路公司在實踐中提出了許多解決方案,並且被其他公司廣泛的利用。今天就帶大家瞭解瞭解這些模式。

1.分層

分層是企業中最常見的一種架構模式,它在橫向維度上把一個大型網站分成幾個部分,這幾個部分相互依賴共同組成一個大型網站,大型網站中最常用的分層是將網站系統分為三個層:應用層,服務層,資料層,這三個層的功能分別如下: 應用層:負責具體業務和檢視展示          服務層:為應用層提供服務支援,起到承上啟下的作用        資料層:負責資料儲存訪問服務,如資料庫,快取,檔案,搜尋引擎等。

2.分割

分層是將網站系統從橫向維度上切分,而分割是將網站系統從縱向維度上切分。分割的核心是:將網站不同的功能分割開來,包裝成高內聚低耦合的模組單元,這些模組單元相互獨立部署但又相互合作共同組成整個網站系統。

3.分散式

分層和分割的一個主要目的是為了切分後的模組便於分散式部署。分散式的核心是:利用更多的計算機 來處理大量的業務,來為更多的使用者提供服務。但分散式也會帶來一些問題: 1.分散式系統中,不同計算機之間的相互通訊是需要消耗一定系統性能的。 2.計算機越多,伺服器宕機的概率會越大。 3.分散式系統中,保持資料的一致性是一個比較困難的問題。 4.系統中計算機越多,網站系統越複雜,開發維護管理起來都會比較困難 下面列舉常見的分散式方案: 1.分散式應用和服務
2.分散式靜態資源 3.分散式資料和儲存 4.分散式計算

4.叢集

使用分散式雖然可以將已經分層和分割的模組獨立部署,但是面對使用者集中訪問的模組,還要採用叢集的方式來處理來自客戶端的大量請求,避免一臺伺服器負載過重而宕機。 因為叢集中的伺服器提供相同的服務,因此可以提供更好的併發性,當有更多使用者請求的時候只需要向叢集中新增伺服器即可。當某臺伺服器發生故障時,負載均衡裝置或者系統的失效轉移機制將請求分發到其他的伺服器上去,使使用者請求不受影響。

5.快取

快取就是將資料存放在距離計算機CPU最近的位置以加快處理速度,而且是改善網站效能的第一手段。快取主要有一下幾種 CDN:內容分發網路,CDN伺服器部署在離使用者最近的網路提供商機房,使用者的請求總是先到達那裡,在這裡快取 的資料可以直接返回給使用者。 反向代理
:反向代理伺服器部署在網站機房,使用者請求到達網站的資料中心的時候,最先到達的是反向代理伺服器,在這裡快取的資料可以直接返回給使用者。 本地快取:在伺服器本機上存放快取資料,但是一般不能存放大量的資料 分散式快取:當需要快取的容量越來越大,本地快取承受不了的情況下,分散式快取可以解決這個問題,因為它可以單獨部署大記憶體的伺服器去快取大量的資料。

6.非同步

非同步架構是典型的生產者消費者模式,兩者不直接呼叫,而是通過一個第三方來實現自己的職責 相對於同步來講,非同步主要有以下優點: 提高系統可用性           加快網站響應速度        消除併發訪問高峰

7.資料備份

網站需要7*24小時連續執行,但是伺服器隨時都有可能出現故障,特別是伺服器規模很大的時候,出現某臺伺服器宕機是必然事件,所以要保證伺服器宕機的情況下網站依然可以執行,就一定要有一定程度的資料備份。這樣當一臺伺服器出現故障時,可以將訪問服務轉移到其他機器上去。

8.自動化

人為手動釋出網站管理網站多多少少都會出錯,而要把出錯的概率降到最低,自動化管理是非常好的解決方案。這樣可以把網站伺服器宕機,網站系統崩潰的概率降到最低

9.安全

這幾乎是所有網站的架構模式,任何一個網站都需要採取各種各樣的措施保障網站安全執行! 架構模式切忌生搬硬套,而要在深刻理解問題的基礎上去創造和創新。