これらの個別の接続を手動で作成して管理することはお勧めしません。マルチテナントの要件の詳細(テナントの数、データベースのサイズ、予想されるトランザクションの数など)はわかりませんが、MongooseのuseDb関数 。その後、Mongooseはすべての接続プールの詳細を処理できます。
更新
私が探求する最初の方向は、各テナントを別々のノードプロセスに設定することです。テナントを個別のノードプロセスで実行することには、いくつかの興味深い利点があります。これは、セキュリティの観点(分離されたメモリ)と安定性の観点(1つのテナントプロセスのクラッシュが他のプロセスに影響を与えない)の観点からは理にかなっています。
URLに基づいてテナンシーを作成していると仮定すると、実際のテナントサーバーの前にプロキシサーバーをセットアップします。 URLを確認し、その情報に基づいて正しいプロセスにルーティングするのが仕事です。これは非常に単純な
これは、実際のアプリケーションをマルチテナントではないかのように設計できることを意味します。各プロセスは1つのmongoデータベースについてのみ認識し、マルチテナントロジックは必要ありません。また、負荷に基づいて後でトラフィックを簡単に分割することもできます。パフォーマンス上の理由でテナントを分割する必要がある場合は、プロキシレベルで透過的に分割できます。 DNSはすべて同じままで、インスタンスが舞台裏にあるサーバーを移動するだけです。複数のサーバー間でテナントのリクエストのバランスをプロキシに設定することもできます。