Prehľad replikácie v MongoDB

MongoDB je open-source dokumentovo orientovaná databáza, ktorá je vysoko škálovateľná, je to NoSQL databáza. Môže sa použiť na ukladanie veľkých objemov údajov.

MongoDB ukladá dáta vo formáte JSON, ktorý je veľmi flexibilný a model dokumentu potom mapuje objekty v aplikačných kódoch.

Čo je replikácia MongoDB?

Replikáciou rozumieme zoskupovanie serverov, ktoré vykonávajú rovnakú funkcionalitu. V prípade MongoDB máme servery MongoDB na ukladanie údajov. Účelom replikácie je zabezpečiť vysokú dostupnosť údajov. V prípade, že niektorý zo serverov klesne, mali by sme mať vždy k dispozícii kópiu údajov na inom serveri, aby nebola ovplyvnená dostupnosť.

Údaje by sa mali replikovať pravidelne a v pravidelných intervaloch, aby sa zabezpečilo, že nestratíme žiadne údaje, a aj keď primárny server klesne, druhý server by mal byť schopný vyhovieť požiadavkám používateľov.

Replikácia je tiež veľmi účinná v prípade vyrovnávania záťaže, napríklad, ak máme niekoľko používateľov, ktorí sa snažia čítať alebo zapisovať údaje na servery, v takom prípade by bolo nespravodlivé, keby všetky žiadosti boli odoslané alebo stiahnuté z Na jednom serveri by mal existovať vyrovnávací mechanizmus, ktorý by mal rovnomerne rozdeľovať zaťaženie na dostupné servery v klastri, aby žiadny server nemal nedostatok pamäte alebo šírky pásma a klesal.

Fungovanie replikácie v procese MongoDB

Replikácia v MongoDB sa dosiahne pomocou sady replík. Množiny replík sú zoskupením serverov MongoDB. Existuje primárny server a je zodpovedný za prijímanie všetkých požiadaviek alebo operácií zápisu od klientov a ostatné inštancie, ktoré sa pridajú do sady replík, sa budú nazývať sekundárne inštancie, ktoré budú zodpovedné za všetky operácie čítania.

  • Ako je znázornené na vyššie uvedenom diagrame, všetky dáta replikujú primárny uzol na sekundárne uzly, v každej množine replík bude iba jeden primárny uzol.
  • Vždy, keď dôjde k zlyhaniu alebo ak je vykonaná nejaká údržba, je zvolený nový primárny uzol.
  • Po obnovení zlyhania uzol, ktorý zlyhal, bude teraz fungovať ako sekundárny uzol.
  • Klientská aplikácia vždy komunikuje s primárnym uzlom, po ktorom nasleduje replikácia údajov do všetkých sekundárnych uzlov.

Sady, tvorba a operácie replík

Aby sme mohli vytvoriť plnohodnotnú replikáciu serverov MongoDB, musíme najprv vytvoriť množinu replík inštancií MongoDB.

Predstavme si, že máme tri servery, repl1, repl2 a repl3, kde repl1 je primárny server a zvyšné sú sekundárne.

Pridanie replikácie primárneho uzla v MongoDB:

  • Uistite sa, že inštancie mongo.exe sú nainštalované na všetkých daných serveroch.
  • Všetky mongod.exe musia byť schopné ping navzájom, tj sú schopní komunikovať. Ak chcete skontrolovať to isté, spustite nasledujúce príkazy z primárnych serverov (najskôr), tj v našom prípade repl1.

mongo –host repl2 –port 27017

mongo –host repl3 –port 27017

Podobne môžeme urobiť rovnaký test aj na iných serveroch

  • Použitím príkazu mongo –replset by sme mali byť schopní spustiť prvú inštanciu mongod.exe.
    mongo –replset „Replica_A“ Kde Replica_A je názov našej sady replík.
  • Zatiaľ sme do našej sady replík pridali prvý server, ďalším krokom je spustenie sady replík vydaním príkazu rs.initiate ().
  • Ďalším krokom je verifikačný krok, pri ktorom zabezpečíme, že všetko, čo sme doteraz nakonfigurovali, je správne, môžeme to urobiť spustením príkazu rs.conf ().

Pridanie replikácie sekundárneho uzla v MongoDB:

Po pridaní primárneho servera je ľahké pridať ďalšie sekundárne uzly, môžeme to urobiť príkazom rs.add ().

Z tohto dôvodu spustite príkaz uvedený nižšie, pretože repl1 je náš primárny server a repl2 a repl3 sú sekundárne servery.

rs.add ( "repl2")

rs.add ( "repl3")

Odstránenie serverov zo sady replík:

Aby bolo možné server odstrániť z ľubovoľnej sady replík, dá sa to urobiť pomocou príkazu rs.remove ().

Do procesu sú zapojené určité kroky, ako je uvedené nižšie:

  • Najprv vypnite inštanciu, ktorá sa musí odstrániť. To je možné vykonať spustením príkazu db.shutdownserver cez mongo cell.
  • Ďalším krokom je pripojenie k primárnemu serveru.
  • Spustite nasledujúci príkaz, povedzme, že máme repl1, repl2 a repl3 ako primárne a sekundárne servery a chceme odstrániť repl3, potom spustíme nasledujúci príkaz:

rs.remove ( "repl3")

Niektoré príkazy na riešenie problémov

  • Všetky mongod.exe musia byť schopné ping navzájom, tj sú schopní komunikovať. Ak chcete skontrolovať to isté, spustite nasledujúce príkazy z primárnych serverov (najskôr), tj v našom prípade repl1.

mongo –host repl2 –port 27017

mongo –host repl3 –port 27017

Podobne môžeme urobiť rovnaký test aj na iných serveroch

  • Rs.status () udáva stav sady replík
  • Na kontrolu oplogu, ktorý je protokolom na zaznamenanie všetkých vykonaných operácií zápisu, zadajte tento príkaz - rs.printReplicationInfo.

Výhody replikácie v MongoDB

Účelom replikácie je zabezpečiť vysokú dostupnosť údajov. V prípade, že niektorý zo serverov klesne, mali by sme mať vždy k dispozícii kópiu údajov dostupných na inom serveri, aby nebola ovplyvnená dostupnosť. Replikácia je tiež veľmi účinná v prípade vyrovnávania záťaže, napríklad ak máme číslo používateľov sa pokúša čítať alebo zapisovať údaje na servery.

Hlavné príbehy replikácie slúžia na krátke príbehy, ktoré slúžia na tento účel:

  1. Vysoká dostupnosť
  2. Rozdelenie výkonu

záver:

Ako sme videli, replikácia MongoDB je proces, pri ktorom replikujeme údaje na viac ako jednom serveri, aby sme zabezpečili vysokú dostupnosť. To možno dosiahnuť vytvorením sady replík a pridaním primárneho a sekundárneho servera.

Odporúčané články:

Toto bol návod na replikáciu v MongoDB. Tu diskutujeme o vytvorení, prevádzke, práci, výhodách a niektorých príkazoch na riešenie problémov. Viac informácií nájdete aj v ďalších navrhovaných článkoch -

  1. Nástroje GUI pre MongoDB
  2. Príkazy MongoDB
  3. Alternatívy MongoDB
  4. Ako nainštalovať MongoDB