簡體   English   中英

將文件存儲在磁盤或MongoDB上

[英]Store files on disk or MongoDB

我正在創建一個mongodb / nodejs博客系統(類似於wordpress)。

我目前將圖像保存在磁盤上,指針放在mongo中。 我想知道,因為我將所有會話存儲在MongoDB中以實現跨服務器的輕松負載平衡,將實際文件存儲在Mongo中也是一個聰明的想法,可以輕松實現多服務器設置和/或性能提升。

如果所有內容都存儲在數據庫中,您可以簡單地生成更多Web服務器和/或mongo復制以進行水平擴展

意見?

MongoDB是存儲文件的好選擇(我說的是GridFS),特別是對於上面描述的用例。 當您將文件存儲到MongoDB(GridFS,而不是文檔)時,您可以免費獲得所有復制和分片功能,這非常棒。

如果你必須生成一個新的服務器並且已經將文件放入MongoDB,那么你所要做的就是啟用復制(因此水平擴展)。 我相信這可以為你節省很多麻煩。

資源:

GridFS是否足夠快速可靠地進行生產?
http://www.mongodb.org/display/DOCS/GridFS
http://www.coffeepowered.net/2010/02/17/serving-files-out-of-gridfs/

除了GridFS,您可能正在考慮基於雲的部署。 在這種情況下,您可以考慮將文件存儲在特定於雲的存儲中(例如,Windows Azure具有Blob存儲)。 在此示例中使用Windows Azure(因為這是我使用的),您將通過其存儲帳戶URI引用文件。 例如:

https://mystorageacct.blob.core.windows.net/mycontainer/myvideo.wmv

由於您將MongoDB數據庫本身存儲在自己的blob中(並作為磁盤卷安裝在Linux或Windows VM上),因此您可以選擇將文件存儲在同一存儲帳戶或完全不同的存儲帳戶中(每個存儲帳戶提供 100TB 200TB的存儲空間)。

將圖像存儲為mongodb中的文檔將是一個壞主意,因為可用於發送大量信息數據的資源將用於發送文件。

看看mongoDb文件存儲GridFS,它可以解決您存儲圖像的問題,並提供水平可伸縮性。

http://www.mongodb.org/display/DOCS/GridFS http://www.mongodb.org/display/DOCS/GridFS+Specification

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM