標籤:
在當前這個互連網的時代,不管何種網站,對圖片的需求量越來越大,尤其在電商網站中,幾乎都會面臨到海量圖片資源的儲存、訪問等相關技術問題。在對圖片伺服器的架構,擴充,升級的過程中,肯定也會碰到各種各樣的問題,各種各樣的需求。當然這並不代表,就必須得弄一個特別NB的圖片服務架構,簡單,高效,穩定就行。所以今天就來總結一個特別簡單,高效的圖片服務架構:通過共用儲存的方式來實現圖片服務架構。
然而,也有一些人問我,現在大型網站的圖片伺服器的架構已經完全不是這樣的了,別人家的圖片系統,比你這個牛逼多了,為啥不直接寫那個呢? 事實是:第一,大型牛逼的系統我也不會,第二, 再牛逼的系統也是從小的架構演化過去的,沒有一步到位的。這裡介紹圖片伺服器架構雖然比較簡單,但也是經過了單機時代的演化了,基本上可以滿足中小型分布式網站的需求。這種架構的搭建和學習成本,都極低,符合目前“短平快”的開發模式。
通過共用目錄的方式實現共用儲存 ,在共用目錄檔案伺服器上配置獨立網域名稱,這樣將圖片伺服器和應用伺服器進行分離,來實現獨立圖片伺服器。
優點:1 將圖片服務和應用服務分離,緩解應用伺服器的I/O負載。
2. 通過共用目錄的方式來進行讀寫操作,可以避免多伺服器之間同步相關的問題。
3. 相對來講很靈活,也支援擴容/擴充。支援配置成獨立圖片伺服器和網域名稱訪問,方便日後的擴充和最佳化。
4. 相對於更加複雜的分布式的NFS 系統,這種方式是性價比高,符合目前互連網的“短平快”的開發模式。
缺點 :1. 共用目錄配置有些繁瑣,
2. 會造成一定的(讀寫和安全)效能損失。
3. 如果圖片伺服器出現問題,那所有的應用都會受到影響。同時也對儲存伺服器的效能要求特別高。
4. 圖片上傳操作,還是得經過Web伺服器,這對Web伺服器還是有巨大的壓力。
其實架構也非常簡單,基本架構如所示:
1. 在儲存伺服器上建立一個共用目錄(具體方式,我就不去重複了,自己百度吧,注意共用目錄的檔案安全)。
2. 各個應用直接通過共用目錄(\\192.168.1.200),將圖片上傳到儲存伺服器上。
3. 建立一個web網站(i1.abc.com)將該共用目錄通過web網站發布出去。這樣其他的應用就能訪問到相關圖片。
所以,各應用,將檔案上傳到共用目錄
//儲存原圖
//完整的地址:\\192.168.1.200\lib\2016\03\04\10\IMG\4ugvvt6m9gdu.jpg
relativePath = relativeDir + fileName + imageExtension; var absolutePath = ConfigHelper.SharePath + relativePath; fileData.SaveAs(absolutePath);
上傳成功後,可直接通過web 的方式訪問:
http://i1.abc.com/lib/2016/03/04/10/IMG/4ugvvt6m9gdu.jpg
電商總結(四)基於共用儲存的圖片伺服器架構