Omówienie replikacji w MongoDB

MongoDB to zorientowana na dokumenty baza danych typu open source, która jest wysoce skalowalna, jest to baza danych NoSQL. Może być używany do przechowywania dużych ilości danych.

MongoDB przechowuje dane w formacie JSON, który jest bardzo elastyczny, a model dokumentu jest następnie mapowany na obiekty w kodach aplikacji.

Co to jest replikacja MongoDB?

Przez replikację rozumiemy klastrowanie serwerów, które wykonują tę samą funkcjonalność. W przypadku MongoDB mamy serwery MongoDB do przechowywania danych. Celem replikacji jest zapewnienie wysokiej dostępności danych. W przypadku awarii któregokolwiek z serwerów zawsze powinniśmy mieć kopię danych dostępną na innym serwerze, aby nie wpływać na dostępność.

Dane powinny być replikowane okresowo i w regularnych odstępach czasu, aby upewnić się, że nie stracimy żadnych danych, a nawet jeśli główny serwer ulegnie awarii, drugi powinien być w stanie obsłużyć żądania użytkowników.

Replikacja jest również bardzo skuteczna w przypadku równoważenia obciążenia, na przykład jeśli wielu użytkowników próbuje odczytać lub zapisać dane na serwerach, wówczas niesprawiedliwe byłoby, gdyby wszystkie żądania zostały wysłane lub pobrane na jednym serwerze powinien istnieć mechanizm równoważący, który powinien równomiernie rozłożyć obciążenie na dostępne serwery w klastrze, aby żaden serwer nie zabrakł pamięci lub przepustowości i nie spadł.

Działanie replikacji w procesie MongoDB

Replikację w MongoDB uzyskuje się za pomocą zestawów replik. Zestawy replik to grupowanie serwerów MongoDB. Istnieje serwer główny i jest on odpowiedzialny za odbieranie wszystkich żądań lub operacji zapisu od klientów, a inne instancje, które zostaną dodane do zestawu replik, będą wywoływane jako instancje wtórne, które będą odpowiedzialne za wszystkie operacje odczytu.

  • Jak pokazano na powyższym diagramie, wszystkie dane replikują węzeł główny do węzłów dodatkowych, w każdym zestawie replik będzie tylko jeden węzeł główny.
  • Za każdym razem, gdy nastąpi przełączenie awaryjne lub zostanie wykonana część czynności konserwacyjnych, wybierany jest nowy węzeł główny.
  • Po odzyskaniu pracy awaryjnej węzeł, który uległ awarii, działa teraz jako węzeł dodatkowy.
  • Aplikacja kliencka zawsze komunikuje się z węzłem podstawowym, po czym następuje replikacja danych do wszystkich węzłów dodatkowych.

Zestawy replik, tworzenie i operacje

Aby utworzyć pełnoprawną replikację serwerów MongoDB, najpierw musimy utworzyć zestaw replik instancji MongoDB.

Wyobraźmy sobie, że mamy trzy serwery: repl1, repl2 i repl3, gdzie repl1 jest serwerem podstawowym, a pozostałe są serwerami pomocniczymi.

Dodawanie replikacji węzła podstawowego w MongoDB:

  • Upewnij się, że instancje mongo.exe są zainstalowane na wszystkich podanych serwerach.
  • Wszystkie mongod.exe muszą być w stanie pingować się nawzajem, tzn. Być w stanie komunikować się. Aby to sprawdzić, uruchom następujące polecenia z serwerów głównych (na początku), czyli w naszym przypadku repl1.

mongo –host repl2 –port 27017

mongo –host repl3 –port 27017

Podobnie możemy wykonać ten sam test z innych serwerów

  • Korzystając z polecenia mongo –replset, powinniśmy być w stanie uruchomić naszą pierwszą instancję mongod.exe.
    mongo –replset „Replica_A” Gdzie Replica_A to nazwa naszego zestawu replik.
  • Na razie dodaliśmy pierwszy serwer do naszego zestawu replik, następnym krokiem jest zainicjowanie zestawu replik poprzez wydanie polecenia rs.initiate ().
  • Następnym krokiem jest krok weryfikacji, w którym upewnimy się, że wszystko, co do tej pory skonfigurowaliśmy, jest poprawne, możemy to zrobić, uruchamiając komendę rs.conf ().

Dodanie replikacji węzła dodatkowego w MongoDB:

Po dodaniu serwera podstawowego można łatwo dodać inne węzły dodatkowe, możemy to zrobić, wydając polecenie rs.add ().

Dlatego uruchom poniższe polecenie, biorąc pod uwagę, że repl1 jest naszym serwerem podstawowym, a repl2 i repl3 są odpowiednio serwerami pomocniczymi.

rs.add („repl2”)

rs.add („repl3”)

Usuwanie serwerów z zestawu replik:

Aby usunąć serwer z dowolnego zestawu replik, można to zrobić za pomocą polecenia rs.remove ().

Proces ten obejmuje pewne etapy, jak podano poniżej:

  • Najpierw zamknij instancję, którą należy usunąć. Można to zrobić, uruchamiając komendę db.shutdownserver za pośrednictwem komórki mongo.
  • Następnym krokiem jest połączenie z serwerem podstawowym.
  • Uruchom następującą komendę, powiedzmy, że mamy repl1, repl2 i repl3 odpowiednio jako serwery podstawowe i pomocnicze i chcemy usunąć repl3, a następnie uruchomimy następującą komendę:

rs.remove („repl3”)

Niektóre polecenia do rozwiązywania problemów

  • Wszystkie mongod.exe muszą być w stanie pingować się nawzajem, tzn. Być w stanie komunikować się. Aby to sprawdzić, uruchom następujące polecenia z serwerów głównych (na początku), czyli w naszym przypadku repl1.

mongo –host repl2 –port 27017

mongo –host repl3 –port 27017

Podobnie możemy wykonać ten sam test z innych serwerów

  • Funkcja rs.status () podaje status zestawu replik
  • Aby sprawdzić oplog, który jest dziennikiem rejestrującym wszystkie wykonane operacje zapisu, wydaj polecenie - rs.printReplicationInfo.

Zalety replikacji w MongoDB

Celem replikacji jest zapewnienie wysokiej dostępności danych. W przypadku awarii któregoś z serwerów, zawsze powinniśmy mieć kopię danych dostępną na innym serwerze, aby nie wpływać na dostępność. Replikacja jest również bardzo skuteczna w przypadku równoważenia obciążenia, na przykład, jeśli mamy liczbę użytkowników próbuje odczytać lub zapisać dane na serwerach.

Krótko mówiąc, główne zalety replikacji służą następującemu celowi:

  1. Duża dostępność
  2. Równoważenie obciążenia

Wniosek:

Jak widzieliśmy, replikacja MongoDB to proces, w którym replikujemy dane na więcej niż jednym serwerze w celu zapewnienia wysokiej dostępności. Można to zrobić, tworząc zestaw replik i dodając serwer główny i pomocniczy.

Polecane artykuły:

To był przewodnik po replikacji w MongoDB. Tutaj omawiamy tworzenie, działanie, działanie, zalety i niektóre polecenia do rozwiązywania problemów. Możesz także przejrzeć nasze inne sugerowane artykuły, aby dowiedzieć się więcej -

  1. Narzędzia GUI MongoDB
  2. Polecenia MongoDB
  3. Alternatywy MongoDB
  4. Jak zainstalować MongoDB