Wann sollte ich MongoDB-Verbindungen öffnen und schließen?

8

Ich bin sehr neu in MongoDB und NoSQL im Allgemeinen und ich habe gerade begonnen, eine Website mit MongoDB / Norm / ASP.NET MVC 3 zu erstellen.

Ich frage mich, wie ich die Verbindungen zu meiner Mongo-Datenbank festlegen sollte.

Im Moment habe ich einen Basecontroller, der die MongoSession aktiviert und onActionExecuted ich entsorge, sodass alle meine abgeleiteten Controller Zugriff auf meine MongoSession haben. Die MongoSession-Klasse öffnet eine Verbindung in ihrem Konstruktor und disponiert sie auf Dispose (), so wie sie heute funktioniert.

%Vor%

Ich bin ein bisschen besorgt, dass es Verbindungen halten könnte, die zu lange offen sind, wenn ich auch andere Sachen in den Controllern mache.

Reicht diese Herangehensweise aus, um nicht zu riskieren, zu viele Verbindungen offen zu halten, oder sollte ich etwas mehr wie die folgende Beispielmethode tun?

%Vor%

Eine weitere Frage ist:

Öffnen und schließen MongoDB-Verbindungen durch "teure" Operationen der Norm?

    
Kimpo 07.02.2012, 07:16
quelle

2 Antworten

8

Ich würde die Verbindung offen lassen, da das erneute Erstellen der Verbindung teuer ist. Mongo ist gut mit vielen Verbindungen, offen für eine lange Zeit. Was Sie idealerweise tun sollten, ist die Verbindung mit allen Teilen Ihrer Anwendung als dauerhafte Verbindung zu teilen. Der C # -Treiber sollte schlau genug sein, dies selbst zu tun, so dass es nicht zu viele Verbindungen schafft, da intern "Verbindungspooling" verwendet wird, wodurch es sogar Verbindungen wiederverwendet. Die Dokumentation sagt: "Die Verbindungen zum Server werden automatisch im Hintergrund ausgeführt (ein Verbindungspool wird verwendet, um die Effizienz zu erhöhen)."

Prost, Derick

    
Derick 07.02.2012, 09:11
quelle
2

Sie müssen nicht anrufen verbinden oder trennen

Der C # -Treiber verfügt über einen Verbindungspool, um Verbindungen zum Server effizient zu verwenden. Es besteht keine Notwendigkeit, Connect oder Disconnect aufzurufen. Lassen Sie den Treiber nur die Verbindungen verwalten (der Aufruf von Connect ist harmlos, aber der Aufruf von Disconnect ist schlecht, weil alle Verbindungen im Verbindungspool geschlossen werden).

Ссылка

    
Robson 06.05.2014 14:32
quelle