自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

圖片存儲架構(gòu)學(xué)習(xí):獨立的圖片服務(wù)器

運維 系統(tǒng)運維 存儲架構(gòu)
這幾天我一直在關(guān)注大型網(wǎng)站中圖片存儲方面的相關(guān)問題,通過了解和實踐,體會頗深,我想我可以針對圖片存儲這個話題寫一個系列文章,以便對這次學(xué)習(xí)的總結(jié)。第一篇,讓我們從獨立圖片服務(wù)器開始說起,真愛,不是須要讓自己更加獨立的么?

版權(quán)聲明:非商業(yè)自由轉(zhuǎn)載,署名王國峰原文鏈接

前言

去年我憑著對網(wǎng)站架構(gòu)的濃厚興趣陸陸續(xù)續(xù)給大家分享了不少大型網(wǎng)站架構(gòu)的經(jīng)典案例,但是大部分都只是介紹了大概,并沒有深入地研究,有興趣的朋友可以去我博客的網(wǎng)站架構(gòu)分類下學(xué)習(xí)討論。今年我打算繼續(xù)學(xué)習(xí)網(wǎng)站架構(gòu)方面的知識,并對此作更加深入地分析與實踐,當(dāng)然學(xué)習(xí)成果會及時和大家分享和交流,希望今年自己的能力可以更上一層樓吧。

這幾天我一直在關(guān)注大型網(wǎng)站中圖片存儲方面的相關(guān)問題,通過了解和實踐,體會頗深,我想我可以針對圖片存儲這個話題寫一個系列文章,以便對這次學(xué)習(xí)的總結(jié)。

第一篇,讓我們從獨立圖片服務(wù)器開始說起,真愛,不是須要讓自己更加獨立的么?come on!

正文

一、部署獨立圖片服務(wù)器的必要性

我們知道,無論對于Apache還是IIS,圖片始終是最消耗系統(tǒng)資源的,如果將圖片服務(wù)和應(yīng)用服務(wù)放在同一個服務(wù)器的話,應(yīng)用服務(wù)器很容易會因為圖片的高I/O負(fù)載而崩潰,因此對于有些大型網(wǎng)站項目,我們有必要將圖片服務(wù)器和應(yīng)用服務(wù)器分離。部署獨立的圖片服務(wù)器(甚至是服務(wù)器集群)是大型網(wǎng)站圖片存儲解決方案中最基礎(chǔ)的,因為有了獨立的圖片服務(wù)器后,我們才能對圖片服務(wù)器做更有針對性的性能優(yōu)化,比如從硬件角度說,圖片服務(wù)器可以配置高端的硬盤,7200轉(zhuǎn)的換成15000轉(zhuǎn)的,而CPU卻只要一般就可以了;從軟件角度說,可以為圖片服務(wù)器配置特殊的文件系統(tǒng)來滿足對圖片的I/O請求,如淘寶的TFS,就很好地解決了大規(guī)模小圖片文件帶來的I/O噩夢,同時,我們也可以采用nginx、squid來代理圖片請求等等。

二、采用獨立域名

注意,這里是指獨立域名,不是子域哦,比如yahoo.com圖片服務(wù)器用了yimg.com的域名,而不是用二級域名img.yahoo.com,這是為什么呢?個人覺得原因主要有以下幾點:

1、同一域名下瀏覽器的并發(fā)連接數(shù)有限制,一般在2 - 6之間,下圖列舉了各個瀏覽器的并發(fā)連接數(shù)(來自網(wǎng)絡(luò),未經(jīng)我親自考證,供參考)

    

這樣,我們?nèi)绻o圖片服務(wù)器配置獨立的域名,那么在一個頁面中加載圖片時,就可以突破瀏覽器連接數(shù)的限制,理論上,增加一個獨立域名,并發(fā)連接數(shù)加倍。

2、由于cookie的原因,對緩存不利

比如有一張圖片http://www.test.com/img/xx.gif,那么當(dāng)我們向它發(fā)起請求的時候,會帶上www.test.com域名下的cookie,由于大部分web cache都只緩存不帶cookie的請求,這樣就導(dǎo)致每次的圖片請求都不能命中cache,而仍舊要去原始服務(wù)器獲取圖片,導(dǎo)致圖片緩存意義不大。所以,還是給單獨搞一個圖片獨立域名吧,當(dāng)然,不只是圖片,css和js文件也可以參照這個思路來搞。

3、方便CDN同步

這個我不太清楚是怎么回事,我個人猜測和第二點cookie有點關(guān)系,還望資深人士留言分享,謝謝。

三、圖片服務(wù)器分離后,如何進行圖片上傳和圖片同步

當(dāng)然任何事物都具有兩面性,圖片服務(wù)器分離固然提升了圖片訪問的效率,大大緩解了服務(wù)器因圖片造成的I/O瓶頸,但是分離以后圖片的上傳和同步就成了一個大問題了。下面就我個人的想法談?wù)剮追N解決方案。

1、NFS共享方式

如果你不想在每臺圖片服務(wù)器同步所有圖片,那NFS共享是最簡單也最實用的方式。NFS是個分布式的客戶機/服務(wù)器文件系統(tǒng),NFS的實質(zhì)在于用戶間計算機的共享,用戶可以聯(lián)結(jié)到共享計算機并象訪問本地硬盤一樣訪問共享計算機上的文件。

具體實現(xiàn)思路是:web服務(wù)器通過nfs掛載多臺圖片服務(wù)器export出來的目錄,用戶先將圖片上傳到web服務(wù)器,然后將上傳的圖片通過程序拷貝到這個mount目錄中去,這樣那幾臺圖片服務(wù)器就也能訪問到剛上傳的圖片了(注意,只是共享了,并沒有真正拷貝到圖片服務(wù)器)。再給那幾臺圖片服務(wù)器綁定獨立域名,于是瀏覽器端就可以用單獨的域名來訪問圖片了。這種方式基本不會有因同步造成的延時,但需要依賴nfs,nfs掛掉會影響web服務(wù)器。為了更直觀的表達(dá),我還是上一幅圖吧,畫得比較粗糙,大家將就著看看。

至于如何配置nfs,大家google一下,或者看一下這篇文章,是在Linux下配置NFS的http://blog.csdn.net/lixinso/article/details/6639643

2、利用FTP同步

和上面nfs不一樣的是,用戶上傳完圖片后是利用ftp同步到各個圖片服務(wù)器的,php、java、asp.net基本上都能操作ftp。這樣的話每個圖片服務(wù)器就都保存一份圖片的副本,也起到了備份的作用。但是缺點是將圖片ftp到服務(wù)器比較耗時,如果異步去同步的話又會有延時,不過一般的小圖片文件也還好了。

當(dāng)然除了上面兩種方法,還有諸如安裝同步軟件、webservice等方法,但我個人覺得上面2種比較靠譜一點,所以其他的就暫時不介紹了,如果各位朋友有更好地建議,請留言分享。

好了,對于獨立圖片服務(wù)器的介紹就到這里了,歡迎大家補充,咱們下回見。

 

責(zé)任編輯:yangsai 來源: itivy.com
相關(guān)推薦

2017-09-14 08:43:05

2012-09-29 13:29:11

存儲架構(gòu)架構(gòu)緩存

2010-03-24 19:31:35

Nginx服務(wù)器

2018-02-23 15:18:22

云服務(wù)器獨立服務(wù)器差異

2011-08-01 14:51:25

域控制器成員服務(wù)器獨立服務(wù)器

2009-05-13 09:10:59

Facebook存儲基礎(chǔ)架構(gòu)照片應(yīng)用程序

2018-10-29 09:39:34

NginxVSFTP服務(wù)器

2012-09-29 13:33:16

Squid圖片存儲存儲架構(gòu)

2010-05-19 17:06:33

Subversion服

2009-02-18 13:20:00

2012-06-26 10:35:40

Squid架構(gòu)

2010-05-19 17:26:58

2009-06-14 18:37:53

Linux刀片服務(wù)器安裝

2011-08-18 16:03:34

iPhone上傳圖片

2015-05-29 13:22:10

Linux掛載運維

2010-02-22 10:16:39

獨立服務(wù)器問題訪問故障

2017-06-16 10:54:08

服務(wù)器陣列網(wǎng)絡(luò)架構(gòu)

2012-02-27 15:44:12

存儲服務(wù)器寶通

2018-12-05 10:10:40

HBase服務(wù)器架構(gòu)

2018-05-18 09:43:37

服務(wù)器架構(gòu)大型網(wǎng)站
點贊
收藏

51CTO技術(shù)棧公眾號