關(guān)于一個(gè)大型web系統(tǒng)構(gòu)架圖的理解
我剛剛畢業(yè),沒有接觸過什么大型的系統(tǒng),甚至沒見過多個(gè)服務(wù)器是怎么連起來的。但是我知道,大型的web系統(tǒng)要把服務(wù)器放在集裝箱里面,要占很多空間,如何供電如何制冷都是非常慎重的。在網(wǎng)上見過Google的數(shù)據(jù)中心站片,簡(jiǎn)直像一個(gè)小型工廠一樣。
下面這個(gè)圖是我以前從網(wǎng)上看到的,于是就下載了下來,一直保存著。今天閑來無事,就和大家聊聊我的理解,有什么地方不對(duì)的,還請(qǐng)大家多多指教。
構(gòu)架圖如下:

我們從下往上就行分析:
1,對(duì)數(shù)據(jù)庫的操作(提交數(shù)據(jù)):“應(yīng)用服務(wù)器群”會(huì)向“數(shù)據(jù)庫群”提交數(shù)據(jù),也會(huì)從"數(shù)據(jù)庫群"獲取數(shù)據(jù)。當(dāng)提交數(shù)據(jù)的時(shí)候,會(huì)把數(shù)據(jù)先提交給“異步隊(duì)列”,然后定期把從“異步隊(duì)列”提交到“數(shù)據(jù)庫群”。
大型網(wǎng)站往往對(duì)應(yīng)著海量數(shù)據(jù),并且每時(shí)每刻都有大量數(shù)據(jù)提交。如果不用“異步隊(duì)列”將提交數(shù)據(jù)分批處理,數(shù)據(jù)庫會(huì)每時(shí)每刻都處于被提交狀態(tài)。這樣很可能不堪重負(fù)而死去。
2,對(duì)數(shù)據(jù)庫的操作(查詢數(shù)據(jù)):大家都知道緩存,這里的“分布式緩存服務(wù)器群”就是一個(gè)緩存,但它是一個(gè)有很多服務(wù)器連接起來的大型緩存,比如facebook有成千上萬臺(tái)服務(wù)器通過memcached連接成一個(gè)分布式緩存服務(wù)器群。“應(yīng)用服務(wù)器群”首先會(huì)向“分布式緩存服務(wù)器群”獲取數(shù)據(jù),如果緩存的數(shù)據(jù)過期,再向“數(shù)據(jù)庫群”獲取數(shù)據(jù),并再次把數(shù)據(jù)更新到緩存中,以便下次使用。
CPU訪問緩存的速度要遠(yuǎn)遠(yuǎn)快于訪問硬盤的速度,大型web系統(tǒng)每天有大量PV,海量的訪問,如果沒有緩存,每次訪問都得從數(shù)據(jù)庫中查詢,那是不可想象的。再者,面對(duì)數(shù)據(jù)庫的海量數(shù)據(jù),緩存必須通過分布式解決,因?yàn)橐慌_(tái)機(jī)器的緩存不足以應(yīng)付那么大的數(shù)據(jù)量。
3,對(duì)數(shù)據(jù)庫的操作(總結(jié)):不管是對(duì)數(shù)據(jù)庫的提交還是查詢,都有兩個(gè)特點(diǎn)。第一,批量操作,對(duì)數(shù)據(jù)庫的操作次數(shù)要遠(yuǎn)遠(yuǎn)低于系統(tǒng)的訪問次數(shù);第二,都經(jīng)過內(nèi)存,提交過程的“異步隊(duì)列”和訪問過程中的“分布式緩存”都是內(nèi)存。這樣的數(shù)據(jù)操作增加了系統(tǒng)的訪問速度,同事減少了數(shù)據(jù)庫的壓力。
4,“動(dòng)態(tài)web服務(wù)器群”直接面對(duì)用戶訪問,當(dāng)用戶向系統(tǒng)查詢或者提交數(shù)據(jù)時(shí),“動(dòng)態(tài)web服務(wù)器群”只做一部分程序運(yùn)算,設(shè)計(jì)到數(shù)據(jù)庫操作的運(yùn)算,直接調(diào)用“應(yīng)用服務(wù)器群”來完成。
這樣可以平均分擔(dān)服務(wù)器的壓力,而且使系統(tǒng)各層級(jí)各部門職責(zé)分明,便于管理。
5,“應(yīng)用服務(wù)器群”會(huì)不斷把一些既定的內(nèi)容生成html靜態(tài)頁,保存到“靜態(tài)web服務(wù)器群”中。用戶對(duì)這些內(nèi)容的訪問,系統(tǒng)會(huì)提供靜態(tài)頁的鏈接,使用戶直接訪問靜態(tài)頁。
服務(wù)器對(duì)靜態(tài)頁的處理和動(dòng)態(tài)頁處理相比,大大減少了CPU的壓力。另外,生成靜態(tài)頁也減少了緩存的壓力,因?yàn)橐话愕撵o態(tài)頁用不到復(fù)雜的緩存。
6,“文件服務(wù)器群”存儲(chǔ)了系統(tǒng)的海量圖片、視頻等文件,于是這個(gè)服務(wù)器群需要很大的硬盤存儲(chǔ)空間。用戶訪問網(wǎng)頁,網(wǎng)頁會(huì)加載其中相應(yīng)的圖片或視頻。文件服務(wù)器對(duì)CPU和網(wǎng)絡(luò)帶寬的要求都相當(dāng)高,單獨(dú)用一個(gè)服務(wù)器群存儲(chǔ)處理文件時(shí),可以為這個(gè)服務(wù)器群?jiǎn)为?dú)加大帶寬和CPU速度。
7,至于左上角的“外部資源,比如Google搜索和報(bào)表”,我暫時(shí)還不明白什么意思,希望大家多多指教。
以上就是我對(duì)這個(gè)構(gòu)架圖的理解,肯定有不準(zhǔn)確甚至錯(cuò)誤的地方,希望大家不吝賜教。

浙公網(wǎng)安備 33010602011771號(hào)