sql >> Databasteknik >  >> NoSQL >> MongoDB

timeoutfel för mongodb-anslutningen

Jag ville ge det här svaret eftersom det kom upp i en mongodb-examensfråga för det kostnadsfria mongodb-universitetet online. Det är noggrant och ger dokumentation.

Jag har listat ut det och kommer att rensa upp en del förvirring främst orsakad av bristande förklaring i lektionerna. Jag är inte kritisk men ytterligare förklaring krävs för att korrekt besvara denna fråga.

För det första, när du ansluter till mongodb via ett program kommer du att använda en drivrutin. Den här föraren har barriärer den måste passera för att kunna göra något med mongodb-servern. När du förstår detta barriärkoncept kommer du att förstå denna fråga.

Varje anslutning som i slutändan görs till en lista över saker måste inträffa för att passera barriärerna och slutligen genomföra en skriv- eller läsoperation.

Visuellt kan du tänka på det så här:

*****Obs**:Var som helst längs denna pipeline inträffar ett fel baserat på din logik, en framgångsrik skriv-/läsoperation kanske inte inträffar.

Vi kan tänka på barriärer 1 - 3 som nätverksbarriärer för anslutning. Om nätverket är nere eller har problem är dessa problem man skulle märka genom timeouts och undantagshantering av dessa timeouts. Vad man måste förstå är att du inte kan utföra en skrivoperation med skrivproblem om du inte kan ansluta till servern i första hand. Lektionen kunde ha illustrerat dessa punkter.

Den första uppsättningen av barriärer för en skriv- eller läsoperation ska ha en etablerad anslutning till servern... Detta illustreras ovan av barriärerna 1 - 3.

Sedan, efter att du har en serveranslutning via ett kluster och/eller replikuppsättning av kluster, kan du definiera skrivproblem.

Efter att vi har en etablerad anslutning kanske en skrivning inte sker av andra skäl än nätverksanslutning. Dessa kan vara kollisioner av data eller en extrem tilldelning av skrivningar på grund av DDOS eller hacking eller i allmänhet inte tillräckligt med serverutrymme för att data ska skrivas till servern. Poängen är att något annat kan orsaka en reaktion på skrivproblemet och därmed kontrollen genom alternativ för att hantera skrivproblem.

Jag hoppas att detta hjälper eftersom det fick mig att förstå frågan och det rätta svaret därefter. För det mesta fick vi inte riktigt lära oss detta så jag hoppas att det här hjälper andra att lära sig och förstå denna feedbackloop.

Här är några artiklar jag läste för att hjälpa mig komma fram till detta svar/slutsats. Om någon har en bättre eller förbättring av min förklaring får du gärna ge feedback.

https://scalegrid.io/blog/understanding-mongodb-client- timeout-alternativ/

https://scalegrid.io/blog/mongodb- write-concern-3-must-know-caveats/

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

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



  1. hur mongoimporterar man data till utplacerad meteorapp?

  2. Bästa sättet att representera flerspråkig databas på mongodb

  3. Skapa en mongovy som beror på aktuell tid

  4. Hur hittar jag sessions-ID:t när jag använder express/connect och en sessionsbutik?