sql >> データベース >  >> NoSQL >> MongoDB

マングースはnode.jsでマルチテナンシーサポートのための接続を作成します

    これらの個別の接続を手動で作成して管理することはお勧めしません。マルチテナントの要件の詳細(テナントの数、データベースのサイズ、予想されるトランザクションの数など)はわかりませんが、MongooseのuseDb関数 。その後、Mongooseはすべての接続プールの詳細を処理できます。

    更新

    私が探求する最初の方向は、各テナントを別々のノードプロセスに設定することです。テナントを個別のノードプロセスで実行することには、いくつかの興味深い利点があります。これは、セキュリティの観点(分離されたメモリ)と安定性の観点(1つのテナントプロセスのクラッシュが他のプロセスに影響を与えない)の観点からは理にかなっています。

    URLに基​​づいてテナンシーを作成していると仮定すると、実際のテナントサーバーの前にプロキシサーバーをセットアップします。 URLを確認し、その情報に基づいて正しいプロセスにルーティングするのが仕事です。これは非常に単純なノードhttpプロキシ です。 設定。各テナントインスタンスはまったく同じコードベースである可能性がありますが、異なる構成で起動されます(使用するmongo接続文字列を指示します)。

    これは、実際のアプリケーションをマルチテナントではないかのように設計できることを意味します。各プロセスは1つのmongoデータベースについてのみ認識し、マルチテナントロジックは必要ありません。また、負荷に基づいて後でトラフィックを簡単に分割することもできます。パフォーマンス上の理由でテナントを分割する必要がある場合は、プロキシレベルで透過的に分割できます。 DNSはすべて同じままで、インスタンスが舞台裏にあるサーバーを移動するだけです。複数のサーバー間でテナントのリクエストのバランスをプロキシに設定することもできます。




    1. Ubuntu11.04でmongodbを再起動できません

    2. イベント統計ストアとしてRedisを使用したい

    3. mgoを使用したMongoDBでの効率的なページング

    4. Node.jsのcastArrayFiltersで未定義のプロパティ'castForQuery'を読み取ることができません