MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

next.js und mongodb atlas – Erhalten von Verbindungen % des konfigurierten Limits hat 80 Alarm überschritten

Die Verbindung sollte aus folgenden Gründen wiederverwendet werden:

  1. Das Öffnen und Schließen von DB-Verbindungen bei jeder API-Anfrage ist langsam.
  2. Es ist kaum skalierbar. Angenommen, Sie stellen ein paar API-Anfragen gleichzeitig pro Benutzer, erreichen Sie das gleiche Verbindungslimit schnell, wenn die App mehr Benutzer erhält.

Wie verwalte ich MongoDB-Verbindungen in einer Node.js-Webanwendung?

Standard-MongoClient Konfiguration hat eine maximale Anzahl von Verbindungen pro Pool (poolSize ) auf 5 gesetzt . Sie sollten also nicht mehr als ~5 Verbindungen in MongoDB Atlas sehen, wenn Sie nur eine App-Instanz ausführen und prüfen, ob ein Client bereits verbunden ist, wie Sie es tun.

if (!client.isConnected()) {
  await client.connect();
}

Beachten Sie, dass Next.js bei jeder Anfrage im Entwicklungsmodus "neu startet" (next dev ) und es scheint, dass es MongoClient betrifft Cache und erstellt viele Verbindungen. Im Produktionsmodus sollte dieses Problem jedoch nicht auftreten.