圖片服務(wù)器

一、 必要性

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

二、 如何進(jìn)行圖片上傳和同步

1. NFS掛載方式


2. FTP上傳方式

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

三、 設(shè)計(jì)圖


[if !supportLists]一、[endif]如何滿足一張圖片多種尺寸顯示的要求?

傳統(tǒng)的做法是:1. 將一張圖在上傳時(shí)就進(jìn)行切割或壓縮成不同需求的多張圖片存放到服務(wù)器。這種做法的弊端就是:消耗服務(wù)器資源嚴(yán)重以及不能根據(jù)業(yè)務(wù)擴(kuò)展去擴(kuò)展。

2. 在客戶端進(jìn)行圖片拉繩。這種做法的弊端:數(shù)據(jù)傳輸流量浪費(fèi),而且拉繩之后圖片變形。

現(xiàn)在的解決辦法:圖片根據(jù)請(qǐng)求的尺寸參數(shù),在服務(wù)器端就進(jìn)行切割或壓縮,以適應(yīng)請(qǐng)求的尺寸比例。

比如:

原圖:http://223.202.3.245:81/upload/store/goods/2/2014/09/29/2_455f7dcc676a848d60bda171a470b412.jpg


40x40的圖:

http://223.202.3.245:81/upload/store/goods/2/2014/09/29/2_455f7dcc676a848d60bda171a470b412.jpg_40x40.jpg

phpForApache

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容