天天看點

大型網站技術架構讀書筆記02—大型網站架構模式1.分層2.分割3.分布式4.叢集5.緩存6.異步7.資料備份8.自動化9.安全

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

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

1.分層

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

2.分割

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

3.分布式

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

4.叢集

使用分布式雖然可以将已經分層和分割的子產品獨立部署,但是面對使用者集中通路的子產品,還要采用叢集的方式來處理來自用戶端的大量請求,避免一台伺服器負載過重而當機。 因為叢集中的伺服器提供相同的服務,是以可以提供更好的并發性,當有更多使用者請求的時候隻需要向叢集中添加伺服器即可。當某台伺服器發生故障時,負載均衡裝置或者系統的失效轉移機制将請求分發到其他的伺服器上去,使使用者請求不受影響。

5.緩存

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

6.異步

異步架構是典型的生産者消費者模式,兩者不直接調用,而是通過一個第三方來實作自己的職責 相對于同步來講,異步主要有以下優點: 提高系統可用性           加快網站響應速度        消除并發通路高峰

7.資料備份

網站需要7*24小時連續運作,但是伺服器随時都有可能出現故障,特别是伺服器規模很大的時候,出現某台伺服器當機是必然事件,是以要保證伺服器當機的情況下網站依然可以運作,就一定要有一定程度的資料備份。這樣當一台伺服器出現故障時,可以将通路服務轉移到其他機器上去。

8.自動化

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

9.安全

這幾乎是所有網站的架構模式,任何一個網站都需要采取各種各樣的措施保障網站安全運作!

架構模式切忌生搬硬套,而要在深刻了解問題的基礎上去創造和創新。

繼續閱讀