Wie lieber liest auf secondaries in MongoDb
Bei der Verwendung von mongodb in einem replica set-Konfiguration (1 Schiedsrichter, 1 Grundschule, 2 slaves), wie kann ich festlegen, dass Lesen ausgeführt werden, für die secondaries und lassen Sie die primäre nur für schreibt? Ich bin mit MongoDb 2.0.4 mit Morphia. Ich sehe, dass es eine slaveOk () - Methode, aber ich bin mir nicht sicher, wie das funktioniert.
Morphia http://code.google.com/p/morphia/
Details
Meine Mongo ist mit den folgenden Optionen:
mongo.slaveOk(); mongo.setWriteConcern(WriteConcern.SICHER);
Ich bin versucht, verwenden Sie die folgenden (diese können Antworten btw):
Datastore ds = getDatastore(); Query<MyEntity> query = ds.find(MyEntity.class).Feld("entityId").gleich(entityId); Abfrage.queryNonPrimary(); //wird angezeigt, entspricht ReadPrefererence.sekundäre() MyEntity entity = query.get();
Stimmen Sie ab ohne einen Kommentar, wie hilfreich 🙁
Die Frage zeigt keine Forschung.
Hinzugefügt.. slaveOk.. wird es funktionieren? keine Ahnung, aber es sieht nicht richtig für mich.
"keine Ahnung, aber" - das ist es, was ich meine. Haben Sie versucht, zu googeln, bevor du die Frage?
Hinzugefügt "morphia" - tag. Es ist die Dokumentation sieht auch ziemlich Dünn, wie es umschließt die Java-Treiber, müssen Sie möglicherweise einen Blick auf die Quelle. Die entsprechenden Java-Treiber-doc - api.mongodb.org/java/current/com/mongodb/ReadPreference.html und die Allgemeine MongoDB Dokumente sind unter: docs.mongodb.org/manual/applications/replication/...
Die Frage zeigt keine Forschung.
Hinzugefügt.. slaveOk.. wird es funktionieren? keine Ahnung, aber es sieht nicht richtig für mich.
"keine Ahnung, aber" - das ist es, was ich meine. Haben Sie versucht, zu googeln, bevor du die Frage?
Hinzugefügt "morphia" - tag. Es ist die Dokumentation sieht auch ziemlich Dünn, wie es umschließt die Java-Treiber, müssen Sie möglicherweise einen Blick auf die Quelle. Die entsprechenden Java-Treiber-doc - api.mongodb.org/java/current/com/mongodb/ReadPreference.html und die Allgemeine MongoDB Dokumente sind unter: docs.mongodb.org/manual/applications/replication/...
InformationsquelleAutor Paul Gregoire | 2013-01-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die richtige Antwort, nach viel Blut und Schweiß ist wie folgt:
Es ist auch eine gute übung, stellen Sie ein entsprechendes schreiben Bedenken bei der Verwendung von replica sets, etwa so:
InformationsquelleAutor Paul Gregoire
Es scheint, dass die aktuelle Methode (wie in Java driver 2.8+) zu tun
dann
Dadurch werden alle verbindungen bevorzugen die Verwendung von primär-und Sekundärfarben, sondern die primäre als backup, wenn die sekundäre down oder nicht verfügbar aus irgendeinem Grund.
Sie können auch festlegen, die lese-Vorliebe nach der Erstellung des mongo-client wie diese
mongoClient.setReadPreference(ReadPreference.secondaryPreferred())
.mongoClient.slaveOk()
ist veraltet.InformationsquelleAutor Nic Cottrell
Verwenden Sie die "SEKUNDÄRE" Lesen Vorliebe
http://www.mongodb.org/display/DOCS/Read+Einstellungen+und+Tagging+in+Der+Java+Treiber
"SEKUNDÄR : Lesen von einem sekundären Knoten, falls verfügbar, sonst Fehler."
ReadPrefererence.secondary()
statt.InformationsquelleAutor geakie
Für den Java-Treiber 3.6 die Methode ist jetzt
InformationsquelleAutor Jose Quinteiro