上一節(jié),我們了解了項(xiàng)目的基礎(chǔ)架構(gòu) 女阀,開發(fā)第一個(gè)基礎(chǔ)版本宅荤,已經(jīng)完全沒有問題了,但隨便版本的不斷迭代更新浸策,業(yè)務(wù)邏輯變得越來越復(fù)雜冯键,在架構(gòu)上,就顯得越來越吃力庸汗。
本節(jié)主要講述圖片存儲(chǔ)方案的選擇惫确。
作為互聯(lián)網(wǎng)產(chǎn)品,圖片上傳和展示是必不可少的蚯舱,一開始改化,直接使用單機(jī)存盤的方式,然后通過nginx或apache等可以直接訪問圖片枉昏。但隨著圖片的增多所袁,出現(xiàn)的問題就越來越明顯了:
1,存盤的方式凶掰,只適用于單臺(tái)機(jī)器燥爷,單臺(tái)機(jī)器的容量是有限的。
2懦窘,單臺(tái)機(jī)器沒有任何容災(zāi)能力前翎,一旦出現(xiàn)問題,整個(gè)圖片服務(wù)都會(huì)出現(xiàn)癱瘓畅涂,且所有圖片都很難恢復(fù)港华。
3,單臺(tái)機(jī)器的負(fù)荷有限午衰,圖片是屬于大文件立宜,并發(fā)過大時(shí)冒萄,對(duì)帶寬要求,機(jī)器性能要求都很高橙数。
這時(shí)尊流,我們就要考濾的是圖片的備份和拉取速度。目前有很多成熟的解決方案灯帮,這里推薦使用圖片云存儲(chǔ)能力+CDN能力(如七牛云存儲(chǔ)崖技,阿里云存儲(chǔ)等),一般云存儲(chǔ)廠商都會(huì)提供分布式圖片存儲(chǔ)和CDN能力钟哥,不過如果這種方式是收費(fèi)服務(wù)(一定范圍內(nèi)免費(fèi)迎献,具體參考各大廠商的詳細(xì)說明),簡(jiǎn)單腻贰,可靠吁恍。
但如果圖片量非常大,該方案收費(fèi)就比較昂貴了播演,對(duì)于初創(chuàng)企業(yè)來說冀瓦,不劃算。這里我們可以考濾自已搭建圖片服務(wù)器宾巍。這里推薦使用FastDFS ,FastDFS是一個(gè)開源的分布式文件系統(tǒng),她對(duì)文件進(jìn)行管理渔伯,功能包括:文件存儲(chǔ)顶霞、文件同步、文件訪問(文件上傳锣吼、文件下載)等选浑,解決了大容量存儲(chǔ)和負(fù)載均衡的問題。特別適合以文件為載體的在線服務(wù)玄叠,如相冊(cè)網(wǎng)站古徒、視頻網(wǎng)站等等。具體參考:http://www.oschina.net/p/fastdfs/读恃。
小結(jié):如果是最開始的單機(jī)器 存儲(chǔ)隧膘,需要自己寫一個(gè)文件上傳服務(wù),定義文件存儲(chǔ)規(guī)則寺惫。如果使用云存儲(chǔ)或FastDFS疹吃,它們已經(jīng)集成了該服務(wù),及文件存儲(chǔ)或訪問規(guī)則 西雀。當(dāng)然萨驶,如果考濾到訪問速度,可以使用第三方提供的CDN服務(wù)(這是收費(fèi)服務(wù))艇肴。
下一節(jié):如何加快接口訪問速度