免费观看一级一片_成人自拍视频在线_最近的免费中文字幕1_h网站免费在线观看

RSS訂閱 | 匿名投稿
您的位置:網站首頁 > 服務支持 > 正文

大型網站圖片服務器架構的演進

作者:habao 來源: 日期:2015-9-2 14:59:07 人氣: 標簽:大型服務器圖片

  在主流的Web站點中,圖片往往是不可或缺的頁面元素,尤其在大型網站中,幾乎都將面臨“海量圖片資源”的存儲、訪問等相關技術問題。在針對圖片服務器的架構擴展中,也會曆經很多曲折甚至是血淚教訓(尤其是早期規劃不足,造成後期架構上很難兼容和擴展)。

  本文將以一個真實垂直門戶網站的發展曆程,向大家娓娓道來。

  構建在Windows平臺之上的網站,往往會被業內眾多技術認為很“保守”,甚至會有點。很大部分原因,是由於微軟技術體系的封閉和部分技術人員的短視造成的(當然,主要還是人的問題)。由於長期缺乏開源支持,所以很多人只能“閉門造車”,這樣很容易形成思維局限性和短板。以圖片服務器為例子,如果前期沒有容量規劃和可擴展的設計,那麼隨著圖片文件的不斷增多和訪問量的上升,由於在性能、容錯/容災、擴展性等方面的設計不足,後續將會給開發、運維工作帶來很多問題,嚴重時甚至會影響到網站業務正常運作和互聯網公司的發展(這絕不是在危言聳聽)。

  很多公司之所以選擇Windows()平臺來構建網站和圖片服務器,很大部分由創始團隊的技術背景決定的,早期的技術人員可能更熟悉.NET,或者團隊的負責人認為Windows/.NET的易用性、“短平快”的開發模式、人才成本等方面都比較符合創業初期的團隊,自然就選擇了Windows。後期業務發展到一定規模,也很難輕易將整體架構遷移到其它開源平臺上了。當然,對於構建大規;ヂ摼W,更建議首選開源架構,因為有很多成熟的案例和開源生態的支持(也會有很多坑,就看是你自己最先去踩坑,還是在別人踩了修復之後你再用),避免重復造輪子和支出高額授權費用。對於遷移難度較大的應用,個人比較推薦Linux、Mono、Jexus、Mysql、Memcahed、Redis……混搭的架構,同樣能支撐具有高並發訪問和大數據量等特點的互聯網應用。

  初創時期由於時間緊迫,開發人員水平也很有限等原因。所以通常就直接在website文件所在的目錄下,建立1個upload子目錄,用於保存用戶上傳的圖片文件。如果按業務再細分,可以在upload目錄下再建立不同的子目錄來區分。例如:upload\QA,upload\Face等。

  在數據庫表中保存的也是”upload/qa/test.jpg”這類相對徑。

  用戶的訪問方式如下:

  

  從上圖可看出,整個Web服務器架構已經具備“可擴展、高可用”了,主要問題和瓶頸都集中在多臺服務器之間的文件同步上。

  上述架構中只能在這幾臺Web服務器上互相“增量同步”,這樣一來,就不支持文件的“刪除、更新”操作的同步了。

  早期的想法是,在應用程序層面做控制,當用戶請求在web1服務器進行上傳寫入的同時,也同步去調用其它web服務器上的上傳接口,這顯然是得不償失的。所以我們選擇使用Rsync類的軟件來做定時文件同步的,從而省去了“重復造輪子”的成本,也降低了風險性。

  同步操作裏面,一般有比較經典的兩種模型,即推拉模型:所謂“拉”,就是指輪詢地去獲取更新,所謂推,就是發生更改後主動的“推”給其它機器。當然,也可以采用加高級的事件通知機制來完成此類動作。

  在高並發寫入的場景中,同步都會出現效率和實時性問題,而且大量文件同步也是很消耗系統和帶寬資源的(跨網段則更明顯)。

  沿用虛擬目錄的方式,通過UNC(網絡徑)的方式實現共享存儲(將upload虛擬目錄指向UNC)

  用戶的訪問方式1:

  

  在早期的很多基於Linux開源架構的網站中,如果不想同步圖片,可能會利用NFS來實現。事實證明,NFS在高並發讀寫和海量存儲方面,效率上存在一定問題,並非最佳的選擇,所以大部分互聯網公司都不會使用NFS來實現此類應用。當然,也可以通過Windows自帶的DFS來實現,缺點是“配置復雜,效率未知,而且缺乏資料大量的實際案例”。另外,也有一些公司采用FTP或Samba來實現。

  提到的幾種架構,在上傳/下載操作時,都經過了Web服務器(雖然共享存儲的這種架構,也可以配置獨立域名和站點來提供圖片訪問,但上傳寫入仍然得經過Web服務器上的應用程序來處理),這對Web服務器來講無疑是造成巨大的壓力。所以,更建議使用獨立的圖片服務器和獨立的域名,來提供用戶圖片的上傳和訪問。

  直到應用級別的(非系統級) DFS(例如FastDFS HDFS MogileFs MooseFS、TFS)的流行,簡化了這個問題:執行冗餘備份、支持自動同步、支持線性擴展、支持主流語言的客戶端api上傳/下載/刪除等操作,部分支持文件索引,部分支持提供Web的方式來訪問。

  考慮到各DFS的特點,客戶端API語言支持情況(需要支持C#),文檔和案例,以及社區的支持度,我們最終選擇了FastDFS來部署。

  唯一的問題是:可能會不兼容舊版本的訪問規則。如果將舊圖片一次性導入FastDFS,但由於舊圖片訪問徑分布存儲在不同業務數據庫的各個表中,整體更新起來也十分困難,所以必須得兼容舊版本的訪問規則。架構升級往往比做全新架構更有難度,就是因為還要兼容之前版本的問題。(給飛機在空中換引擎可比造架飛機難得多)

  首先,關閉舊版本上傳入口(避免繼續使用導致數據不一致)。將舊圖片數據通過rsync工具一次性遷移到獨立的圖片服務器上(即下圖中描述的Old Image Server)。在最前端(七層代理,如Haproxy、Nginx)用ACL(訪問規則控制),將舊圖片對應URL規則的請求(正則)匹配到,然後將請求直接轉發指定的web 服務器列表,在該列表中的服務器上配置好提供圖片(以Web方式)訪問的站點,並加入緩存策略。這樣實現舊圖片服務器的分離和緩存,兼容了舊圖片的訪問規則並提升舊圖片訪問效率,也避免了實時同步所帶來的問題。

  整體架構如圖:

  基於FastDFS的獨立圖片服務器集群架構,雖然已經非常的成熟,但是由於國內“南北互聯”和IDC帶寬成本等問題(圖片常消耗流量的),我們最終還是選擇了商用的CDN技術,實現起來也非常容易,原理其實也很簡單,我這裏只做個簡單的介紹:

  將img域名cname到CDN廠商指定的域名上,用戶請求訪問圖片時,則由CDN廠商提供智能DNS解析,將最近的(當然也可能有其它更復雜的策略,例如負載情況、健康狀態等)服務節點地址返回給用戶,用戶請求到達指定的服務器節點上,該節點上提供了類似Squid/Vanish的代理緩存服務,如果是第一次請求該徑,則會從源站獲取圖片資源返回客戶端瀏覽器,如果緩存中存在,則直接從緩存中獲取並返回給客戶端瀏覽器,完成請求/響應過程。

  由於采用了商用CDN服務,所以我們並沒有考慮用Squid/Vanish來自行構建前置代理緩存。

  的整個集群架構,可以很方便的做橫向擴展,能滿足一般垂直領域中大型網站的圖片服務需求(當然,像taobao這樣超大規模的可能另當別論)。經測試,提供圖片訪問的單臺Nginx服務器(至強E5四核CPU、16G內存、SSD),對小靜態頁面(壓縮後大概只有10kb左右的)可以扛住幾千個並發且毫無壓力。當然,由於圖片本身體積比純文本的靜態頁面大很多,提供圖片訪問的服務器的抗並發能力,往往會受限於磁盤的I/O處理能力和IDC提供的帶寬。Nginx的抗並發能力還常強的,而且對資源占用很低,尤其是處理靜態資源,似乎都不需要有過多擔心了。可以根據實際訪問量的需求,通過調整Nginx的參數,對Linux內核做調優,加入分級緩存策略等手段能夠做更大程度的優化,也可以通過增加服務器或者升級服務器配置來做擴展,最直接的是通過購買更高級的存儲設備和更大的帶寬,以滿足更大訪問量的需求。

  值得一提的是,在“雲計算”流行的當下,也推薦高速發展期間的網站,使用“雲存儲”這樣的方案,既能幫你解決各類存儲、擴展、備災的問題,又能做好CDN加速。最重要的是,價格也不貴。

  總結,有關圖片服務器架構擴展,大致圍繞這些問題展開:

讀完這篇文章后,您心情如何?
0
0
0
0
0
0
0
0
本文網址:
下一篇:沒有資料
網站首頁 | 聯系我們 | 招兵買馬 | 意見反饋 | 友情鏈接 | 網站地圖
版權所有:FXT
聲明:本站數據來源于網絡和網友投稿,如果侵犯到你的權益請聯系我們刪除。 友情贊助:
免费观看一级一片_成人自拍视频在线_最近的免费中文字幕1_h网站免费在线观看

      <sub id="fz7f9"><address id="fz7f9"></address></sub>
    1. <strike id="fz7f9"></strike>
      <nobr id="fz7f9"></nobr>
      1. <em id="fz7f9"></em>

        <strike id="fz7f9"><legend id="fz7f9"></legend></strike>
          <form id="fz7f9"><legend id="fz7f9"></legend></form>

          欧美伊人久久久久久午夜久久久久| 亚洲综合激情| 一区二区三区|亚洲午夜| 欧美福利一区二区三区| 亚洲第一在线综合网站| 亚洲福利一区| 欧美日韩国产123| 久久久久久有精品国产| 欧美日韩在线观看一区二区| 国产精品久久久久久久久久久久久久| 欧美视频手机在线| 国产偷国产偷精品高清尤物| 欧美亚洲午夜视频在线观看| 亚洲日本一区二区| 国外成人在线视频| 久久久久久黄| 亚洲婷婷免费| 影音先锋亚洲电影| 精品动漫一区二区| 国产一区二区三区四区五区美女| 亚洲视频久久| 国产日韩欧美日韩大片| 韩国久久久久| 在线观看一区二区视频| 韩国av一区二区三区四区| 毛片精品免费在线观看| 国产精品久久久久永久免费观看| 国产精品一二三四区| 一本色道精品久久一区二区三区| 午夜精品99久久免费| 国产精品综合av一区二区国产馆| 一区二区精品| 国产模特精品视频久久久久| 久久五月天婷婷| 最新亚洲电影| 国产精品丝袜久久久久久app| 亚洲经典三级| 久久久国产精品一区二区中文| 亚洲国产精品va在线观看黑人| 久久国产精品毛片| 久色成人在线| 亚洲一区欧美二区| 欧美色综合天天久久综合精品| 欧美综合77777色婷婷| 国产精品一区二区在线观看| 欧美日韩国产另类不卡| 亚洲精品日韩在线观看| 小辣椒精品导航| 久久久精品日韩欧美| 欧美福利视频在线观看| 欧美激情一区三区| 欧美精品18videos性欧美| 国内精品伊人久久久久av影院| 欧美国产视频在线| 午夜精品电影| 欧美日韩视频在线一区二区观看视频| 在线视频国产日韩| 欧美日本二区| 欧美母乳在线| 伊人久久婷婷| 久久大香伊蕉在人线观看热2| 久久夜色精品国产欧美乱| 欧美日韩国产综合一区二区| 欧美美女操人视频| 亚洲黄页一区| 老**午夜毛片一区二区三区| 亚洲人久久久| 久久久999| 夜夜嗨网站十八久久| 亚洲激情另类| 欧美日韩精品免费观看视一区二区| 欧美日韩裸体免费视频| 午夜精品久久久久久久| 久久久久国产成人精品亚洲午夜| 国产日韩av在线播放| 欧美三级在线播放| 日韩午夜视频在线观看| 国产在线乱码一区二区三区| 亚欧美中日韩视频| 久久综合99re88久久爱| 久久国产精品一区二区三区四区| 亚洲福利视频专区| 午夜精品久久久久久久99热浪潮| 欧美日本三区| 久久九九国产精品怡红院| 鲁鲁狠狠狠7777一区二区| 国产精品久久久久一区| 欧美日韩一区二区三区在线观看免| 欧美精品国产一区| 新狼窝色av性久久久久久| 国产一区二区三区最好精华液| 国产欧亚日韩视频| 欧美日韩综合另类| 亚洲一二三四久久| 国产亚洲午夜高清国产拍精品| 宅男在线国产精品| 蜜月aⅴ免费一区二区三区| 精品91久久久久| 欧美在线啊v一区| 久久福利视频导航| 另类综合日韩欧美亚洲| 99国产精品国产精品久久| 久久亚洲精品网站| 亚洲国产精品一区二区www| 在线日本成人| 精品成人免费| 欧美日韩日韩| 亚洲欧美日韩精品久久奇米色影视| 免费成人高清视频| 99亚洲一区二区| 国产色产综合色产在线视频| 亚洲天堂第二页| 伊人一区二区三区久久精品| 欧美二区视频| 欧美日韩国产不卡| 国产精品r级在线| 亚洲大胆人体在线| 久久成人免费日本黄色| 亚洲国产成人91精品| 国产亚洲精品资源在线26u| 欧美在线一二三| 午夜国产不卡在线观看视频| 激情欧美一区二区| 久久精品国产亚洲一区二区三区| 国产精品国产精品| 亚洲激情欧美| 这里只有精品视频在线| 在线免费观看成人网| 国产日韩视频| 在线不卡a资源高清| 欧美韩国日本一区| 欧美一级视频一区二区| 亚洲精品永久免费精品| 亚洲人成网在线播放| 亚洲国产日韩欧美一区二区三区| 欧美在线高清视频| 最新国产精品拍自在线播放| 久久久一区二区三区| 国产日韩欧美成人| 黄色亚洲大片免费在线观看| 中文av一区二区| 国产精品乱子乱xxxx| 亚洲婷婷免费| 亚洲天堂av电影| 女仆av观看一区| 国产精品久久中文| 欧美日韩国产综合视频在线观看| 精品盗摄一区二区三区| 亚洲日本成人女熟在线观看| 亚洲国产天堂久久国产91| 久久尤物视频| 久久久人人人| 欧美高清在线视频观看不卡| 午夜日韩在线观看| 在线亚洲一区| 国产精品国产三级国产专播品爱网| 老色批av在线精品| 亚洲视频 欧洲视频| 伊人影院久久| 欧美调教vk| 中文精品视频| 在线观看国产成人av片| 伊人成年综合电影网| 欧美伦理影院|