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

MongoDB+Azure+Android:Fehler:com.mongodb.MongoException:Keine Kommunikation mit Master und Wiederholungsversuche aufgebraucht

Der Grund für die zeitweiligen Fehler liegt in den standardmäßigen Leseeinstellungen für den Treiber, hauptsächlich in Bezug auf Replikatsätze. Die standardmäßige Lesepräferenz ist primär. Für jeden der unten erwähnten Modi bezieht sich PRIMARY auf die Master-Datenbank (immer die aktuellste) und SECONDARY bezieht sich auf Slaves, die im Grunde die Kopien des Masters sind und nicht immer auf dem neuesten Stand sind.

PRIMARY: The default read mode. Read from primary only. Throw an error if
         primary is unavailable. Cannot be combined with tags.

Die Lösung zum Ändern der Leseeinstellung in eine der folgenden:

PRIMARY PREFERRED: Read from primary if available, otherwise a secondary.
SECONDARY PREFERRED: Read from a secondary if available, otherwise read from the primary.
NEAREST: Read from any member node from the set of nodes which respond the fastest.

Beispielcode:

// Use this when doing a read if you don't care if the data is always consistent.
// Change the following with secondaryPreferred() if you have high writes, so
// that you don't interfere with them.
ReadPreference preference = ReadPreference.primaryPreferred();
DBCursor cur = new DBCursor(collection, query, null, preference);

Weitere Informationen finden Sie in der Quelle .