Prezentare generală a replicării în MongoDB

MongoDB este o bază de date open-source orientată către documente, care este extrem de scalabilă, este o bază de date NoSQL. Poate fi utilizat pentru stocarea datelor cu volum mare.

MongoDB stochează datele în format JSON, care este foarte flexibil, iar modelul documentului apoi mapează obiectele din codurile aplicației.

Ce este replicarea MongoDB?

Prin replicare, ne referim la gruparea serverelor care îndeplinesc aceeași funcționalitate. În cazul MongoDB, avem servere MongoDB pentru stocarea datelor. Scopul replicării este de a ne asigura că avem disponibilitate ridicată a datelor. În cazul în care vreunul dintre servere se reduce, ar trebui să avem întotdeauna o copie a datelor disponibile într-un alt server, astfel încât disponibilitatea să nu fie afectată.

Datele ar trebui să fie replicate periodic și la intervale regulate pentru a ne asigura că nu pierdem din date și, chiar dacă serverul principal scade, cel de-al doilea ar trebui să poată satisface solicitările utilizatorului.

Replicarea este de asemenea foarte eficientă în cazul echilibrării încărcării, de exemplu, dacă avem un număr de utilizatori care încearcă să citească sau să scrie date pe servere, în acest caz, ar fi nedrept dacă toate solicitările sunt trimise sau preluate de la doar un server, ar trebui să existe un mecanism de echilibrare care să distribuie în mod egal sarcina pe serverele disponibile din cluster, astfel încât niciun server să nu rămână din memorie sau lățime de bandă și să scadă.

Funcționarea replicării în procesul MongoDB

Replicarea în MongoDB se realizează cu ajutorul seturilor Replica. Seturile de replici reprezintă gruparea serverelor MongoDB. Există un server primar și este responsabil pentru primirea tuturor solicitărilor sau a operațiunilor de scriere de la clienți, iar celelalte instanțe care vor fi adăugate la setul de replici vor fi numite instanțele secundare care vor fi responsabile pentru toate operațiunile citite.

  • Așa cum este ilustrat în diagrama de mai sus, toate datele reproduc nodul primar la nodurile secundare, va exista un singur nod primar în orice set de replici.
  • Ori de câte ori se produce un eșec sau dacă se efectuează o activitate de întreținere, este ales un nou nod primar.
  • Odată recuperată failover-ul, nodul eșuat acționează acum ca un nod secundar.
  • Aplicația client comunică întotdeauna cu nodul primar, care este apoi urmat de replicarea datelor la toate nodurile secundare.

Seturi de replici, creare și operații

Pentru a crea o replicare completă a serverelor MongoDB, trebuie să creăm mai întâi un set de replici de instanțe MongoDB.

Să ne imaginăm că avem trei servere, repl1, repl2 și repl3 unde repl1 este serverul principal, iar restul sunt cele secundare.

Adăugarea replicării nodului primar în MongoDB:

  • Vă rugăm să vă asigurați că instanțele mongo.exe sunt instalate pe toate serverele date.
  • Toate mongod.exe trebuie să poată face ping reciproc, adică să poată comunica. Pentru a verifica același lucru, rulați următoarele comenzi de la serverele primare (la început) adică repl1 în cazul nostru.

mongo - cea mai mare repl2 –port 27017

mongo - cea mai mare repl3 –port 27017

În mod similar, putem face același test și de pe alte servere

  • Folosind comanda, mongo –replset, ar trebui să putem începe prima noastră instanță mongod.exe.
    mongo - replicați „Replica_A” În cazul în care Replica_A este numele setului nostru de replici.
  • În ceea ce privește acum, am adăugat primul server la setul nostru de replici, următorul pas este inițierea setului de replici prin emiterea comenzii rs.initiate ().
  • Următorul pas este pasul de verificare în care ne vom asigura că orice am configurat până acum este corect, îl putem face rulând comanda rs.conf ().

Adăugarea replicării nodurilor secundare în MongoDB:

Odată adăugat serverul primar, este ușor să adăugați celelalte noduri secundare, putem face acest lucru prin emiterea comenzii rs.add ().

Prin urmare, rulați comanda de mai jos, repl1 dat este serverul nostru principal, iar repl2 și repl3 sunt servere secundare.

rs.add ( „repl2“)

rs.add ( „repl3“)

Scoaterea serverelor din setul de replici:

Pentru a elimina un server din orice set de replici, acesta poate fi realizat folosind comanda rs.remove ().

Există anumite etape care sunt implicate în proces, așa cum este prezentat mai jos:

  • La început, închideți instanța care trebuie eliminată. Acest lucru se poate realiza rulând comanda db.shutdownserver prin celula mongo.
  • Următorul pas este să vă conectați la serverul primar.
  • Rulați următoarea comandă, să zicem că avem repl1, repl2 și repl3 ca servere primare și respectiv servere secundare și vrem să eliminăm repl3, apoi vom rula următoarea comandă:

rs.remove ( „repl3“)

Câteva comenzi pentru soluționarea problemelor

  • Toate mongod.exe trebuie să poată face ping reciproc, adică să poată comunica. Pentru a verifica același lucru, rulați următoarele comenzi de la serverele primare (la început) adică repl1 în cazul nostru.

mongo - cea mai mare repl2 –port 27017

mongo - cea mai mare repl3 –port 27017

În mod similar, putem face același test și de pe alte servere

  • Rs.status () va oferi starea setului dvs. de replici
  • Pentru verificarea oplog-ului care este un jurnal pentru înregistrarea tuturor operațiunilor de scriere efectuate, emite această comandă - rs.printReplicationInfo.

Avantajele replicării în MongoDB

Scopul replicării este de a ne asigura că avem disponibilitate ridicată a datelor. În cazul în care vreunul dintre servere se reduce, ar trebui să avem întotdeauna o copie a datelor disponibile într-un alt server, astfel încât disponibilitatea să nu fie afectată. Replicarea este de asemenea foarte eficientă în cazul echilibrării sarcinii, de exemplu, dacă avem un număr dintre utilizatorii încearcă să citească sau să scrie date pe servere.

Atât de scurtă poveste, principalele avantaje ale replicării servesc scopului de mai jos:

  1. Valabilitate ridicată
  2. Echilibrarea sarcinii

Concluzie:

După cum am văzut, replicarea MongoDB este un proces în care reproducem datele în mai multe server pentru a asigura disponibilitate ridicată. Acest lucru se poate realiza prin crearea unui set de replici și adăugarea serverelor primare și secundare.

Articole recomandate:

Acesta a fost un ghid pentru replicarea în MongoDB. Aici discutăm despre crearea, operarea, Lucrul, avantajele și unele comenzi pentru depanare. Puteți parcurge și alte articole sugerate pentru a afla mai multe -

  1. Instrumente GUI MongoDB
  2. Comenzile MongoDB
  3. Alternative MongoDB
  4. Cum se instalează MongoDB