2016-07-15 6 views
1

Hat Meteor eine Einstellung auf Timeout und versuchen Sie es erneut, wenn seine MongoDB gibt keine Antwort in x Sekunden? Ich frage mich, ob jemand das versucht hat.Meteor Remote-Datenbank Verbindung Timeout und Reconnect

Ich bin daran interessiert, eine MongoDB-Datenbank fern von der Meteor-Produktions-App zu betreiben. Die Meteor-zu-Mongo-Verbindung wird schnell sein, nur 3-9 Millisekunden entfernt, aber ich möchte auch verstehen, wie Meteor (und NodeJS) auf einen kurzen Netzwerkausfall reagieren würde. Würde die App hängen bleiben, während auf eine lange Zeit gewartet wird? Wie kann ich ein 1-Sekunden-Timeout/Wiederholung erzwingen, um ein Hängenbleiben zu vermeiden?

Antwort

1

Sie Timeout in der Mongo URL angeben:

MONGO_URL=mongodb://host:port/db?connectTimeoutMS=60000&socketTimeoutMS=60000 

aber lassen Sie uns sagen, dass Sie ein Netzwerkausfall haben, was macht eine kurze Auszeit geben Sie? Ihre App wird sowieso hängen ...

Um hohe Verfügbarkeit zu erhalten, schauen Sie in Replikat-Sets.

https://docs.mongodb.com/manual/tutorial/deploy-replica-set/

+0

Guter Punkt. Ich werde nach Replikat-Sets suchen ... vorausgesetzt, ich kann verschiedene Lese- und Schreib-Mongo-Server angeben. Ich glaube, dass Mongo nur Schreibvorgänge auf einer einzigen Master-Mongo-Instanz im Replikat-Set erlaubt. –

+1

mongodb: // host1, host2, host3: 27017/dev? ReplicaSet = rs0 & readPreference = primaryPreferred & w = Mehrheit & connectTimeoutMS = 60000 & socketTimeoutMS = 60000 – MrE

+0

ps: Meteor stürzt ab, wenn es den Master nicht zuerst findet, aber wenn Sie es mit einem ausführen Prozess-Manager wird es neu starten und schließlich verbinden. – MrE

Verwandte Themen