2017-05-05 4 views
2

Im Replica-Set-Cluster von MongoDB Wie kann ich eine schnelle Antwort für einen concurent-Benutzer sicherstellen, wenn mein primärer Dienst eine weitere Anfrage bedient?MongoDB Load Balancer für den Replikatsatz

Muss ich Load Balancer verwenden, oder der Mongodb selbst leitet die Abfrage zu verfügbaren sekundären?

Dank

Antwort

4

Sie brauchen nicht einen Load Balancer oder auf Route Anfragen an sekundären Knoten zu verwenden; der primäre Knoten kann gleichzeitige Abfragen von selbst handhaben:

  1. MongoDB supports concurrent queries, both reads and writes, using a granular locking system
  2. Es ist not advised to use secondaries to provide extra read capacity, als Replikationsentwurf diese ineffizient und unzuverlässig für die meisten Anwendungsfälle macht
  3. Wenn das primäre eine lange Zeit dienen, eine einzelne Aufnahme Anfrage, in der Weise, dass es andere Anfragen aussperrt, die durch Neugestaltung einer ineffizienten Abfrage oder durch Hinzufügen geeigneter indexes adressiert werden sollten.
  4. Wenn der Server mehrere Benutzer trotz der Abfragen wird optimiert dienen kämpft, schauen Sie sich, ob Ihre hardware für den Job nicht ausreicht
  5. Wenn Sie noch, dass Sie Ihre liest horizontal skalieren müssen finden und schreibt, die empfohlene Art und Weise zu tun Sie das durch sharding, nicht durch die Verwendung anderer Knoten eines Replikats.
+0

Wenn es nicht empfohlen wird, Replikate für zusätzliche Lesekapazität zu verwenden, wofür ist es dann gut? Backup und Fehlertoleranz allein? – khandelwaldeval

0

Normalerweise schreibt werden von Master behandelt und liest sollte, indem lesen bevorzugt secondaries gesendet. Es kann zwar eine vernachlässigbare Zeit dauern, um Daten an Secondaries weiterzugeben, da Secondaries die Oplog-Kopie für die Datenreplikation verwenden.

Sie brauchen keinen Load Balancer, Mongo ist in der Lage, diese Dinge zu tun. Lesen Sie mehr darüber hier -

https://docs.mongodb.com/manual/replication/

+0

Eigentlich ist der Ratschlag * nicht *, Reads an Secondaries zu senden, außer in bestimmten Spezialfällen. Weitere Informationen finden Sie im Artikel zu [Preference lesen] (https://docs.mongodb.com/manual/core/read-preference/#use-cases). –