2011-12-15 10 views
9

私はmongodb/nodejsブログシステム(wordpressに似ています)を作成しています。ファイルをディスクまたはMongoDBに保存する

現在、画像はディスクに保存されており、ポインタはmongoに置かれています。私はすべてのセッションがMongoDBに格納されているので、Mongoの実際のファイルを簡単にマルチサーバー設定やパフォーマンス向上のためのスマートなアイデアにすることができます。すべてがDBに格納されている場合

、あなたは単に水平

意見をスケールするために多くのウェブサーバーおよび/またはモンゴの複製を生むことができますか?

答えて

10

MongoDBは特別にユースケースのために、(私はGridFS話している)あなたのファイルを格納するための良いオプションですあなたは上記のとおりです。 ファイルをMongoDB(ドキュメントではなくGridFS)に保存すると、複製とシャーディングの機能がすべて無料になります。これはすばらしいことです。

新しいサーバを起動し、そのファイルをすでにMongoDBに保存しておく必要がある場合は、複製を有効にして水平方向に拡大するだけです。私はこれがあなたに多くの頭痛を救うことができると確信しています。

資源:

Is GridFS fast and reliable enough for production?
http://www.mongodb.org/display/DOCS/GridFS
http://www.coffeepowered.net/2010/02/17/serving-files-out-of-gridfs/

2

イメージをmongodbにドキュメントとして格納することは、大量の情報データを送信するために使用されていたリソースがファイルを送信するために使用されるため、悪い考えです。

mongoDbファイルストレージGridFSを参照してください。これは、画像を格納する問題 を解決し、水平スケーラビリティも提供します。

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

4

別にGridFSから、あなたは、クラウドベースの展開を検討している可能性があります。その場合、クラウド固有のストレージにファイルを格納することを検討することができます(Windows AzureにはBlobストレージなどがあります)。この例ではWindows Azureを使用しています(これは私が使用しているので)、ストレージアカウントのURIでファイルを参照します。たとえば:

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

あなたは、独自のブロブでのMongoDBデータベース自体を格納することと思いますので(とLinuxまたはWindows仮想マシン上のディスクボリュームとしてマウント)、あなたは、同じいずれかでファイルを保存することを選択することができます(それぞれのストレージアカウントが200TBのストレージを提供する 100TB を提供する)。

関連する問題