1. 程式人生 > >使用 MongoDB 的兄弟,有沒有采用 GridFS 做分散式檔案系統的?

使用 MongoDB 的兄弟,有沒有采用 GridFS 做分散式檔案系統的?

修改

寫補充說明 舉報 新增評論   邀請回答 按投票排序按時間排序

6 個回答

鄧濤Kenny李波 等人贊同 壓力以及資料量比較大的業務不推薦使用Mongo GridFS。
Mongo GridFS在高併發(每秒寫入10M,持續半小時到一個小時)的情況下secondary會無法catch up with primary。
Mongo GridFS不是為分散式儲存而設計的,它解決的問題領域是小型業務已經使MONOGODB,但是又需要儲存一些檔案,而且需要給這些檔案加一些元資訊。
用它來儲存圖片以小檔案是比較合適的。
但是把它當大規模的分散式儲存系統就不太合適的,那你應該用S3或者其它雲端儲存解決方案了 gridfs是mongodb為了解決單個document不能超過4M的問題而推出的,通過將檔案進行切分(預設256k,最大4M)存成單獨的document(fs.chunks中),並儲存一個檔案索引表(fs.files)。
從原理上可以看出,如果你的檔案並不大,不超過4M(當然,還要減去一些元資料的佔用),那麼大可不必採用gridfs,使用傳統的collection會得到更高的效能。

補充:
1.8版本中doc的上限已經從4M上調到16M,相信對於絕大多數圖片來說都夠了。 你們的資料量有多大呢?是否採用了auto sharding? 1. 有各種成熟的分散式檔案系統,如fastdfs,mfs,也可以試試
2. 使用gridFs是因為你完全信賴mongodb,但這意味著風險,非常重要的資料建議使用replication set,不依賴單機可靠性.
這裡有一個公司使用了mongodb儲存音樂檔案
blog.wordnik.com/12-mon 我在用GridFS儲存圖片 我覺得新浪的SAE的分散式檔案系統(Storage)可能用的就是Mongo GridFS。