Overzicht van replicatie in MongoDB

MongoDB is een open-source Document-georiënteerde database die zeer schaalbaar is, het is een NoSQL-database. Het kan worden gebruikt voor grote gegevensopslag.

MongoDB slaat de gegevens op in JSON-achtige indeling, die zeer flexibel is en het documentmodel wordt vervolgens toegewezen aan de objecten in applicatiecodes.

Wat is MongoDB-replicatie?

Met replicatie bedoelen we de clustering van servers die dezelfde functionaliteit uitvoeren. In het geval van MongoDB hebben we MongoDB-servers voor het opslaan van de gegevens. Het doel van replicatie is om ervoor te zorgen dat we een hoge beschikbaarheid van gegevens hebben. Als een van de servers uitvalt, moeten we altijd een kopie van de gegevens beschikbaar hebben op een andere server, zodat de beschikbaarheid niet wordt beïnvloed.

Gegevens moeten periodiek en met regelmatige tussenpozen worden gerepliceerd om ervoor te zorgen dat we geen gegevens verliezen, en zelfs als de primaire server uitvalt, moet de tweede server de gebruikersverzoeken kunnen bedienen.

De replicatie is ook zeer effectief in het geval van load-balancing, bijvoorbeeld als we een aantal gebruikers proberen gegevens naar servers te lezen of te schrijven, in dat geval zou het oneerlijk zijn als alle aanvragen worden verzonden of opgehaald van alleen één server, zou er een balanceringsmechanisme moeten zijn dat de belasting gelijkelijk zou moeten verdelen over de beschikbare servers in het cluster zodat geen enkele server onvoldoende geheugen of bandbreedte heeft en uitvalt.

Werken van replicatie in MongoDB-proces

De replicatie in MongoDB wordt bereikt met behulp van Replica-sets. Replica sets zijn de groepering van MongoDB-servers. Er is een primaire server en deze is verantwoordelijk voor het ontvangen van alle aanvragen of de schrijfbewerkingen van clients en de andere instanties die aan de replicaset worden toegevoegd, worden de secundaire instanties genoemd die verantwoordelijk zijn voor alle leesbewerkingen.

  • Zoals in het bovenstaande diagram wordt geïllustreerd, repliceert alle gegevens het primaire knooppunt naar secundaire knooppunten, er is slechts één primair knooppunt in een replicaset.
  • Wanneer een failover plaatsvindt of een onderhoudsactiviteit wordt uitgevoerd, wordt een nieuw primair knooppunt gekozen.
  • Nadat de failover is hersteld, fungeert het mislukte knooppunt nu als een secundair knooppunt.
  • De clienttoepassing communiceert altijd met het primaire knooppunt, dat vervolgens wordt gevolgd door replicatie van gegevens naar alle secundaire knooppunten.

Replica sets, creatie en bewerkingen

Om een ​​volledige replicatie van MongoDB-servers te maken, moeten we eerst een replicaset van MongoDB-exemplaren maken.

Laten we ons voorstellen dat we drie servers hebben, repl1, repl2 en repl3, waarbij repl1 de primaire server is en de overige secundaire servers.

Toevoegen van primaire knooppuntreplicatie in MongoDB:

  • Zorg ervoor dat mongo.exe-exemplaren op alle gegeven servers zijn geïnstalleerd.
  • Alle mongod.exe moet elkaar kunnen pingen, dwz ze kunnen communiceren. Om hetzelfde te controleren, voert u (eerst) de volgende opdrachten uit vanaf de primaire servers, dwz in ons geval repl1.

mongo –host repl2 –port 27017

mongo –host repl3 –port 27017

Op dezelfde manier kunnen we dezelfde test ook uitvoeren vanaf andere servers

  • Met het commando mongo –replset zouden we onze eerste mongod.exe-instantie moeten kunnen starten.
    mongo –replset “Replica_A” Waar Replica_A de naam is van onze replicaset.
  • Voor nu hebben we de eerste server aan onze replicaset toegevoegd, de volgende stap is om de replicaset te initiëren door de opdracht rs.initiate () uit te voeren.
  • De volgende stap is de verificatiestap waarbij we ervoor zorgen dat alles wat we tot nu toe hebben geconfigureerd correct is, we kunnen dat doen door de opdracht rs.conf () uit te voeren.

Toevoegen van secundaire knooppuntreplicatie in MongoDB:

Zodra de primaire server is toegevoegd, is het eenvoudig om de andere secundaire knooppunten toe te voegen, we kunnen dat doen door het commando rs.add () te geven.

Voer daarom de onderstaande opdracht uit, gegeven repl1 is onze primaire server en repl2 en repl3 zijn respectievelijk secundaire servers.

rs.add ( “repl2”)

rs.add ( “repl3”)

Servers verwijderen uit Replica Set:

Om een ​​server uit elke replicaset te verwijderen, kan dit worden gedaan met de opdracht rs.remove ().

Er zijn bepaalde stappen die bij het proces betrokken zijn, zoals hieronder aangegeven:

  • Sluit eerst het exemplaar dat moet worden verwijderd. Dit kan worden gedaan door het commando db.shutdownserver uit te voeren via een mongocel.
  • De volgende stap is om verbinding te maken met de primaire server.
  • Voer de volgende opdracht uit, laten we zeggen dat we repl1, repl2 en repl3 hebben als respectievelijk primaire en secundaire servers en we willen repl3 verwijderen, dan zullen we de volgende opdracht uitvoeren:

rs.remove ( “repl3”)

Enkele opdrachten voor het oplossen van problemen

  • Alle mongod.exe moet elkaar kunnen pingen, dwz ze kunnen communiceren. Om hetzelfde te controleren, voert u (eerst) de volgende opdrachten uit vanaf de primaire servers, dwz in ons geval repl1.

mongo –host repl2 –port 27017

mongo –host repl3 –port 27017

Op dezelfde manier kunnen we dezelfde test ook uitvoeren vanaf andere servers

  • De rs.status () geeft de status van uw replicaset
  • Voor het controleren van oplog, een logboek voor het opnemen van alle gemaakte schrijfbewerkingen, geeft u deze opdracht - rs.printReplicationInfo.

Voordelen van replicatie in MongoDB

Het doel van replicatie is om ervoor te zorgen dat we een hoge beschikbaarheid van gegevens hebben. In het geval dat een van de servers uitvalt, moeten we altijd een kopie van de gegevens beschikbaar hebben op een andere server, zodat de beschikbaarheid niet wordt beïnvloed. De replicatie is ook zeer effectief in het geval van taakverdeling, bijvoorbeeld als we een nummer hebben van gebruikers van proberen gegevens naar servers te lezen of te schrijven.

Zo lang verhaal kort, de belangrijkste voordelen van replicatie dienen het onderstaande doel:

  1. Hoge beschikbaarheid
  2. Load Balancing

Conclusie:

Zoals we hebben gezien, is MongoDB-replicatie een proces waarbij we de gegevens in meer dan één server repliceren om een ​​hoge beschikbaarheid te garanderen. Dit kan worden gedaan door een replicaset te maken en de primaire en secundaire servers toe te voegen.

Aanbevolen artikelen:

Dit is een handleiding voor replicatie in MongoDB geweest. Hier bespreken we het aanmaken, bedienen, werken, voordelen en enkele commando's voor het oplossen van problemen. U kunt ook onze andere voorgestelde artikelen doornemen voor meer informatie -

  1. MongoDB GUI Tools
  2. MongoDB-opdrachten
  3. MongoDB-alternatieven
  4. Hoe MongoDB te installeren