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

Zeitüberschreitung der Mongodb-Verbindung

Ich wollte diese Antwort geben, da sie in einer Mongodb-Prüfungsfrage für die kostenlose Online-Mongodb-Universität auftauchte. Es ist gründlich und bietet Dokumentation.

Ich habe es herausgefunden und werde einige Verwirrung beseitigen, die hauptsächlich durch einen Mangel an Erklärungen in den Lektionen verursacht wurde. Ich bin nicht kritisch, aber eine weitere Erklärung ist erforderlich, um diese Frage richtig zu beantworten.

Erstens, wenn Sie über eine Anwendung eine Verbindung zu mongodb herstellen, verwenden Sie einen Treiber. Dieser Treiber hat Barrieren, die er passieren muss, um irgendetwas mit dem Mongodb-Server zu tun. Wenn Sie dieses Barrierekonzept verstehen, werden Sie auch diese Frage verstehen.

Jede Verbindung, die letztendlich zu einer Liste von Dingen wird, muss auftreten, um die Barrieren zu passieren und schließlich eine Schreib- oder Leseoperation durchzuführen.

Visuell kann man es sich so vorstellen:

*****Hinweis**:An irgendeiner Stelle entlang dieser Pipeline tritt ein Fehler auf, basierend auf Ihrer Logik, dass ein erfolgreicher Schreib-/Lesevorgang möglicherweise nicht auftritt.

Wir können uns die Barrieren 1 bis 3 als Netzwerkbarrieren der Konnektivität vorstellen. Wenn das Netzwerk ausfällt oder Probleme hat, sind dies die Probleme, die man durch Zeitüberschreitungen und die Ausnahmebehandlung dieser Zeitüberschreitungen bemerken würde. Was man verstehen muss, ist, dass Sie keine Schreiboperation mit Schreibproblemen durchführen können, wenn Sie überhaupt keine Verbindung zum Server herstellen können. Die Lektion hätte diese Punkte veranschaulichen können.

Die erste Gruppe von Hindernissen für einen Schreib- oder Lesevorgang besteht darin, eine aufgebaute Verbindung zum Server zu haben ... Dies wird oben durch die Hindernisse 1 - 3 veranschaulicht.

Nachdem Sie dann eine Serververbindung über einen Cluster und/oder eine Replikatgruppe von Clustern hergestellt haben, können Sie Schreibangelegenheiten definieren.

Nachdem wir eine Verbindung hergestellt haben, kann aus anderen Gründen als der Netzwerkkonnektivität kein Schreibvorgang stattfinden. Dies können Datenkollisionen oder eine extreme Zuteilung von Schreibvorgängen aufgrund von DDOS oder Hacking oder allgemein nicht genügend Serverspeicher sein, um die Daten auf den Server zu schreiben. Der Punkt ist, dass etwas anderes eine Reaktion auf den Write Concern verursachen kann und daher die Steuerung durch Optionen zur Behandlung von Write Concern-Fehlern.

Ich hoffe, das hilft, weil ich dadurch die Frage und die richtige Antwort entsprechend verstanden habe. Meistens wurde uns das nicht wirklich beigebracht, also hoffe ich, dass dies anderen hilft, diese Feedback-Schleife zu lernen und zu verstehen.

Hier sind einige Artikel, die ich gelesen habe, um mir zu dieser Antwort / Schlussfolgerung zu verhelfen. Wenn jemand eine bessere oder Verbesserung zu meiner Erklärung hat, können Sie gerne Feedback geben.

https://scalegrid.io/blog/understanding-mongodb-client- Zeitüberschreitungsoptionen/

https://scalegrid.io/blog/mongodb- schreiben-bedenken-3-must-know-caveats/

https://docs.mongodb.com/manual/reference/write-concern/

https://www.mongodb.com/blog /post/server-selection-next-generation-mongodb-drivers