亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 服務器 > Web服務器 > 正文

大型網站高并發解決方案分析之圖片服務器分離架構

2024-09-01 13:54:17
字體:
來源:轉載
供稿:網友

1.介紹

現在很多的網站上都會用到大量的圖片,而圖片是網頁傳輸中占主要的數據量,也是影響網站性能的主要因素。因此很多網站都會將圖片存儲從網站中分離出來,另外架構一個或多個服務器來存儲圖片,將圖片放到一個虛擬目錄中,而網頁上的圖片都用一個URL地址來指向這些服務器上的圖片的地址,這樣的話網站的性能就明顯提高了,圖片服務器(ImageServer)的概念也就產生了。

1.1 圖片服務器的優勢

1, 分擔Web服務器的I/O負載-將耗費資源的圖片服務分離出來,提高服務器的性能和穩定性。

2, 能夠專門對圖片服務器進行優化-為圖片服務設置有針對性的緩存方案,減少帶寬成本,提高訪問速度。

3, 提高網站的可擴展性-通過增加圖片服務器,提高圖片吞吐能力。

1.2 圖片服務器的注意事項

1, 選擇適合圖片存儲的物理介質和文件系統

2, 使用物理上獨立的服務器

3, 如果擁有多臺圖片服務器,要考慮服務器之間的圖片同步問題

4, 使用獨立域名

5, 制定合理的緩存策略

6, 使用圖片處理模塊對用戶上傳的圖片進行再加工

1.3 圖片服務器的架構

圖片是網站中必不可少的一個組成部分,隨著網站的不斷發展,對圖片的處理也將隨著訪問的增長,圖片的增加提出不斷改進的需求, 網站初期,所有的一切都從簡圖片所存在的位置通常會在站點下的Images文件夾。

隨著訪問的增加,IIS壓力的增大,開始做拆分,將圖片文件夾作為單獨站點提取出來如http://images.***.com/(可能根據需要會拆分成多個圖片服務器,與具體業務環境相關),拆分之后很好的將單個IIS應用池的壓力分擔到2個乃至多個上,大大提高訪問瓶頸。隨著訪問的進一步增加,服務器壓力已經無法支撐,這時我們需要將圖片站點作為獨立服務器存在。在訪問圖片的過程中,我們可能會面臨一個圖片有多個圖片尺寸的需求,前期我們通常會在保存頁面的過程中保存我們需要的各個尺寸圖片,但隨著所需尺寸的不同,保存圖片時需要的尺寸越來越多,這時我們如何應對?

IIS服務器的并發訪問意味著隨著用戶的進一步增加,我們單臺圖片服務器已經不足以應對了,此時我們如何進一步擴展?

圖片服務器架構,nginx圖片服務器架構,網站圖片分離

如上圖所示,我們此時可針對這兩個問題做出統一解決方案,在前端添加squid緩存服務器,添加一臺或者多臺動態切圖服務器。Squid或者Nginx代理緩存服務器能夠極大的提升圖片系統的并發訪問,使系統突破現有限制。動態切圖服務器主要的作用是針對不同尺寸的圖片訪問調取原圖臨時生成符合需求的圖片并返回。原圖的存儲區可以與圖片服務放在一起,也可以講圖片放于單獨的服務器上。

在此種結構中,并發的最大訪問限制將是squid或者其他代理服務器的系統瓶頸,當切圖服務壓力增大時,只需添加相應切圖服務器即可,圖片存儲區的增長也可通過添加硬盤或者服務器進行解決。

如果您的站點訪問量還在進一步增長,squid的訪問瓶頸即將被突破,這時我們又該如何應對呢?

圖片服務器架構,nginx圖片服務器架構,網站圖片分離

如上圖所示,采用多臺Squid或Nginx服務器,在前端添加F5或LVS負載均衡(同時還可開啟緩存功能)。此時將極大提升訪問的并發量,可以根據情況隨時調配服務器。當然此時也存在一定的瑕疵,那就是可能在多臺Squid上存在同一張圖片,因為訪問圖片時可能第一次分到squid1,在F5過期后第二次訪問到squid2或者別的,當然相對并發問題的解決,此種少量的冗余完全在我們的允許范圍之內。在做了這許多的工作后,如果條件允許對圖片服務器做下CDN,那將會對您站點的圖片訪問質量有更大的提升。

1.4 圖片存儲架構

1.4.1 部署獨立圖片服務器的必要性

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

1.4.2 采用獨立域名

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

1、同一域名下瀏覽器的并發連接數有限制,一般在2 - 6之間,下圖列舉了各個瀏覽器的并發連接數(下圖供參考)

圖片服務器架構,nginx圖片服務器架構,網站圖片分離

這樣,我們如果給圖片服務器配置獨立的域名,那么在一個頁面中加載圖片時,就可以突破瀏覽器連接數的限制,理論上,增加一個獨立域名,并發連接數加倍。

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

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

3、方便CDN同步

1.4.3 圖片服務器分離后,如何進行圖片上傳和圖片同步

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

1、NFS共享方式

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

具體實現思路是:web服務器通過nfs掛載多臺圖片服務器export出來的目錄,用戶先將圖片上傳到web服務器,然后將上傳的圖片通過程序拷貝到這個mount目錄中去,這樣那幾臺圖片服務器就也能訪問到剛上傳的圖片了(注意,只是共享了,并沒有真正拷貝到圖片服務器)。再給那幾臺圖片服務器綁定獨立域名,于是瀏覽器端就可以用單獨的域名來訪問圖片了。這種方式基本不會有因同步造成的延時,但需要依賴nfs,nfs掛掉會影響web服務器。如下圖

圖片服務器架構,nginx圖片服務器架構,網站圖片分離

至于如何配置nfs,大家在本站搜索一下http://so.jb51.net/

2、利用FTP同步

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

2.圖片服務器的URL HASH架構剖析

2.1 什么是url hash 架構

url hash架構對url進行一次hash算法,然后通過hash結果找到對應的服務器。因為針對單一個url的hash結果是一樣的,所以理論上這個url會被永久分配到固定的一臺服務器上。另外因為經過了hash算法,所以分配url就很均勻,同時訪問量也可以達到均衡。

2.2 為什么要用url hash架構

1, 圖片服務器的特點一是訪問量很大,二是容量也很大,通過簡單的負載均衡,可以解決訪問量大的問題,但是容量的問題并沒有改善。所以會造成容災問題。

2, 容災問題:系統某個時間段被訪問的數據嚴重超出緩存集群中最小單機的容納容量就會造成容災,容災會使大量單一鏈接穿透,直接對后臺的IO性能影響很大。

3, 雖然可以通過增加緩存容量的配置來解決容災問題,但是內存總是有限的,為每一臺機器增加超大內存成本上也開銷很大,另外在squid中也不宜配置很大的磁盤緩存,否則squid中的hash表會很大,性能很差。

4, 通過hash架構,可以充分利用緩存集群的內存,容災問題就不再取決于緩存集群中最小單機的容納容量,而是緩存集群中所有機器的容納容量之和。

2.3 各種url hash架構

1)基于dns的hash架構。

2)基于nginx的自動hash架構。

3)基于nginx的手動hash架構。

2.3.1 基于dns的hash架構

dns的hash架構圖

圖片服務器架構,nginx圖片服務器架構,網站圖片分離

dns的hash架構說明

這個架構適合面向用戶的圖片系統,比如論壇、相冊、博客中的圖片上傳。這樣它才能夠保證文件名有一致的規范。

這個架構圖分了36個域名,圖片文件名是用md5值起的,在md5值中取一位字母就可以表明它是在哪個域名里,域名就對應了機器,上傳分發的時候也是根據此字母來分發。

dns的hash架構的優缺點

優點:

1)使用了dns分流,成本較低,而且dns性能高,不用維護。

2)可突破IE默認每主機2個線程的限制。

缺點:

1)可用性方面,如果有一臺機器宕機,則指向這臺機器的請求無法讀取。

2)分流方面,只能全部同步,成本較高

3)只適用于面向用戶的系統

2.3.2 基于nginx的自動手動hash架構

nginx的自動hash架構圖

圖片服務器架構,nginx圖片服務器架構,網站圖片分離

nginx的自動hash架構說明

1, 這是一種新的緩存架構,由nginx作為最前端,代理到緩存機器。

2, nginx后面是緩存組,由nginx經過url hash后將請求分到緩存機器。

3, 這個架構方便純squid緩存升級,可以在squid的機器上加裝nginx。

4, nginx有緩存的功能,可以將一些訪問量特大的鏈接直接緩存在nginx上,就不用經過多一次代理的請求。比如favicon.ico和網站的logo。

nginx的自動hash架構優缺點

優點

1)高性能

2)使用方便,后臺是什么樣關系不大

3)有很高的可用性

4)緩存架構,分流方便

5)可直接在nginx代理緩存部分鏈接

缺點

url分流可控性弱,增減緩存機器都會引起緩存重新分配,意味著緩存全部失效。

nginx的手動hash架構說明

1,這個架構圖和自動hash的架構是一樣的,唯一有差別的是hash算法的變化,自動hash是用nginx upstream hash模塊自帶的hash算法來實現分流,這個手動架構是自己設計一個算法來實現。

2,算法設計思路是從url中取一個字符來作分流依據,比如定義鏈接的倒數第10個字符來分流,同樣可以分配得很均勻。

3,手動架構可以避免自動架構中增減機器帶來的緩存失效問題,另外可以精確知道一個鏈接到底存在哪臺緩存上。

nginx的手動hash架構優缺點

優點

1)基本可以繼承自動架構的優點

2)避免增減機器的問題

3)精確知道鏈接存儲在哪臺緩存上

缺點

配置較復雜,要分配均勻配置不易。

采用Hash架構對bbs架構優化

1,先前講的bbs架構采用的是lvs+squid作為前端,這樣的話squidclient更新緩存時需要更新所有的squid,這個效率很低下,使用hash架構就可以使squidclient每次只需要清理一臺squid,效率大為提升。

2,推薦的是使用nginx手動hash架構,它可以精確知道鏈接會存在哪臺機器上,這樣就可以配置精確的備份機器。

3.nginx圖片服務器的架構方案

圖片服務通常數據容量較大,而且訪問也頻繁,鑒于此,圖片服務就會有兩種問題,一是存儲問題,二是訪問量問題。
存儲問題就是硬盤容量問題, 花錢買硬盤就可以了,看似簡單,但著實也是最苦的問題。按目前探索來看,最好的方式是:在任何時刻遇到硬盤空間不夠時,買顆硬盤插上,最多改改配置,就能 立刻利用;另外,硬盤要能充分利用,不然圖片存儲量大再加上備份,很恐怖,最好是每顆硬盤都用上100%的空間。
訪問量也是個大問題,如 果服務不允許防盜鏈,那么訪問量會引起帶寬、服務器壓力等問題,有錢的話直接扔CDN,沒錢或者有更多的錢,就自己做吧。根據垣古不變的真理“越老的圖, 訪問量也相對較少”這一點,分成兩大部分,一邊處理最新的圖片,一邊處理老舊的圖片。最新的圖片訪問量大,但存儲量較少;老圖片訪問量低,但存儲量大。

3.1 擬定一個存儲目錄規則

在現有的/a/b/abcde.jpg這樣的hash方式下多加一個日期的目錄變成:/200810/16/a/b/abcde.jpg或者/2008/10/16/a/b/abcde.jpg。按日期制定這個目錄規則后,就可以按年月來拆機器了。

3.2 分機器,分硬盤

按之前的計劃,分成兩個組,一組服務器用lvs做負載均衡負責新圖片;另一組服務器做舊圖片訪問和備份。新圖機器找幾臺好點的服務器,SCSI硬盤;舊圖機 器沒太大要求,PC機就行,找夠硬盤就可以,現在IDE的1T硬盤也不太貴,最好再搭個raid就省事了,最主要是這些機器要多。如下圖:

 圖片服務器架構,nginx圖片服務器架構,網站圖片分離

說明一下:

1、圖片服務通過lvs作為入口,處理能力上還是有保障的。

2、利用nginx直接對外服務,不必用squid。

3、圖中的紅線是指主nginx會將/2006和/2007年的圖片分別代理到兩臺存檔服務器,如果發現主nginx的cpu占用比較大,那么可以考慮使用nginx的proxy_store將圖片存到主服務器上,定期清理。

4、圖中有一臺存儲分配服務器,作為圖片服務更新圖片的統一入口,有新圖片或者修改圖片的話,由這臺服務器負責將圖片放到正確的服務器上去。

5、舊圖片服務器當前用年份來劃分,每年增加兩臺服務器,亦可是加兩塊硬盤,注意,不要相信raid,一定要有兩臺機器,地理上分在兩個城市則更好。

6、因為舊數據2006和2007年的數據基本上是沒有變化的,所以假如硬盤夠大,那么可以把兩年的數據合并在一起。

7、如果細心定制,那么舊圖片服務器的硬盤100%塞滿是可以的,舊數據的容量基本上不會大幅增長,小小預留1-2G空間就可以了。

大型網站高并發情況下圖片服務器分離的分析與解決方案,各種圖片服務器架構方案及總結了他們的優缺點,大家根據自己需求自行選擇一種方案


注:相關教程知識閱讀請移步到服務器教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品成人久久久久| 欧美精品一本久久男人的天堂| 97碰碰碰免费色视频| 欧美成人午夜免费视在线看片| 国自产精品手机在线观看视频| 久久久伊人欧美| 欧美激情视频一区二区| 91精品国产亚洲| 国产精品久久久久久久久久ktv| 国产91露脸中文字幕在线| 成人性生交大片免费观看嘿嘿视频| 国产精品va在线| 日韩av在线免费看| 97久久精品人搡人人玩| 精品亚洲精品福利线在观看| 亚洲人精选亚洲人成在线| 久久久久亚洲精品| 国产精品偷伦免费视频观看的| 狠狠躁18三区二区一区| 欧美一级电影免费在线观看| 久久av在线播放| 另类少妇人与禽zozz0性伦| 欧美二区乱c黑人| 国产精品自产拍在线观| 久久久久久午夜| 亚洲人成网站999久久久综合| 中文字幕精品影院| 国产精品爽爽爽| 日韩在线视频网| 91久久国产婷婷一区二区| 国产精品1区2区在线观看| 国产伦精品一区二区三区精品视频| 亚洲国产精品va在看黑人| 91九色在线视频| 亚洲专区中文字幕| www.亚洲成人| 国产成人鲁鲁免费视频a| 亚洲自拍偷拍色图| 欧美高清激情视频| 2023亚洲男人天堂| 亚洲一区制服诱惑| 国产精品羞羞答答| 色妞色视频一区二区三区四区| 中文字幕日韩在线视频| 精品久久香蕉国产线看观看亚洲| 国产做受高潮69| 欧美色videos| 亚洲第一天堂av| 亚洲欧美中文字幕在线一区| 久久精品国产99国产精品澳门| 美女福利精品视频| 欧美性色视频在线| 国产成人福利夜色影视| 国产成人jvid在线播放| 国产一区二区三区毛片| 久久九九热免费视频| 欧美另类极品videosbest最新版本| 国产精品美女主播| 在线精品视频视频中文字幕| 中文国产成人精品| 亚洲九九九在线观看| 亚洲精品网址在线观看| 少妇高潮 亚洲精品| 成人黄色av网| 欧美大片免费观看在线观看网站推荐| 欧美极品在线播放| 欧美成人精品一区二区三区| 57pao国产成人免费| 国产精品大陆在线观看| 色综合色综合久久综合频道88| 中文字幕国产亚洲| 亚洲欧美在线免费| 美日韩精品免费视频| 大荫蒂欧美视频另类xxxx| 色噜噜亚洲精品中文字幕| 国产精品视频一区国模私拍| 久久福利网址导航| 成人黄色av网站| 国产亚洲精品久久久| 一本色道久久综合狠狠躁篇怎么玩| 国产精品福利久久久| 亚洲影院色在线观看免费| 日韩电影大全免费观看2023年上| 亚洲性夜色噜噜噜7777| 红桃视频成人在线观看| 奇门遁甲1982国语版免费观看高清| 欧美亚洲国产日韩2020| 中文字幕综合一区| 国语自产精品视频在线看抢先版图片| 欧美激情在线有限公司| 成人精品福利视频| 欧美国产亚洲精品久久久8v| 日本亚洲精品在线观看| 欧美日韩成人在线播放| 久久精品一区中文字幕| 精品久久久久久久久中文字幕| 欧美成人精品激情在线观看| 中文字幕日韩综合av| 亚洲国产精品久久久久秋霞蜜臀| 欧美日韩亚洲精品一区二区三区| 91久久久久久| 中日韩美女免费视频网站在线观看| 亚洲欧美在线免费观看| 国产精品久久久久99| 91精品国产高清自在线| 亚洲精品日韩在线| 91麻豆桃色免费看| 91网站在线免费观看| 欧美激情精品久久久久久大尺度| 欧美中文字幕精品| 国产一区二区香蕉| 欧美色videos| 亚洲男人天堂古典| 日韩av一区在线| 国产成人精品一区| 91久热免费在线视频| 亚洲精品少妇网址| 国产精品美女www爽爽爽视频| 97超碰国产精品女人人人爽| 久久久成人精品视频| 青青在线视频一区二区三区| 久热在线中文字幕色999舞| 久久综合久久美利坚合众国| 性色av一区二区三区在线观看| 最近2019中文字幕在线高清| 欧美性生活大片免费观看网址| 亚洲第一男人天堂| 久久综合色影院| 色七七影院综合| 成人网在线免费观看| 狠狠色狠狠色综合日日小说| 亚洲精品国产福利| 欧美一级高清免费播放| 久久伊人精品视频| 51色欧美片视频在线观看| 国产精品久久久久久久久久免费| 97色在线观看免费视频| 国产精品旅馆在线| 国产精品高潮呻吟久久av黑人| 热re99久久精品国产66热| 国产精品爱啪在线线免费观看| 亚洲欧美国产高清va在线播| 91免费高清视频| 亚洲欧洲在线视频| 久久精品视频免费播放| 97超级碰碰碰久久久| 超在线视频97| 日韩在线国产精品| 国产成人免费av| 欧美大片免费观看| 亚洲男人的天堂在线播放| yellow中文字幕久久| 成人综合国产精品| 成人激情视频免费在线| 亚洲激情第一页| 久久男人av资源网站| 国产美女精品视频免费观看| 色综久久综合桃花网| 亚洲女同性videos| 中文字幕亚洲综合久久| 日韩av片永久免费网站| 欧美电影免费观看网站| 色噜噜国产精品视频一区二区| 久久久久久久一区二区|