電商總結(四)基於共享存儲的圖片服務器架構


  在當前這個互聯網的時代,不管何種網站,對圖片的需求量越來越大,尤其在電商網站中,幾乎都會面臨到海量圖片資源的存儲、訪問等相關技術問題。在對圖片服務器的架構,擴展,升級的過程中,肯定也會碰到各種各樣的問題,各種各樣的需求。當然這並不代表,就必須得弄一個特別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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM