Преглед на репликацията в MongoDB

MongoDB е база данни с отворен код, ориентирана към документи, която е много мащабируема, това е база данни NoSQL. Може да се използва за съхранение на данни с голям обем.

MongoDB съхранява данните във формат като JSON, който е много гъвкав и документният модел след това се преобразува в обектите в кодовете на приложението.

Какво е репликация на MongoDB?

Под репликация имаме предвид групирането на сървъри, които изпълняват същата функционалност. В случая на MongoDB имаме MongoDB сървъри за съхранение на данните. Целта на репликацията е да гарантира, че имаме висока наличност на данни. В случай, че някой от сървърите се понижи, винаги трябва да имаме копие на данните, налични на друг сървър, така че наличността да не бъде засегната.

Данните трябва да се възпроизвеждат периодично и на редовни интервали, за да сме сигурни, че не губим никакви данни и дори ако основният сървър се спуска, вторият трябва да може да обслужва потребителските заявки.

Репликацията е много ефективна и в случай на балансиране на натоварването, например, ако имаме редица потребители, които се опитват да четат или записват данни на сървъри, в този случай би било несправедливо, ако цялата заявка е изпратена или изтеглена от просто един сървър, трябва да има балансиращ механизъм, който трябва да разпределя равномерно натоварването към наличните сървъри в клъстера, така че нито един сървър да не изчерпва паметта или честотната лента и да намалява.

Работа на репликация в MongoDB процес

Репликацията в MongoDB се постига с помощта на реплика набори. Реплика наборите са групиране на MongoDB сървъри. Има първичен сървър и той е отговорен за получаването на всички заявки или операциите по записване от клиенти, а останалите екземпляри, които ще бъдат добавени към набора от реплики, ще се наричат ​​вторични инстанции, които ще отговарят за всички операции за четене.

  • Както е илюстрирано на горната диаграма, всички данни репликират първичния възел към вторичните възли, ще има само един първичен възел във всеки набор от реплики.
  • Всеки път, когато се случи аварийна промяна или се извършва някаква поддръжка, се избира нов първичен възел.
  • След като аварийното възстановяване се възстанови, неуспешният възел сега действа като вторичен възел.
  • Клиентското приложение винаги комуникира с първичния възел, което след това е последвано от репликация на данни към всички вторични възли.

Реплика набори, създаване и операции

За да създадем пълноценна репликация на MongoDB сървъри, първо трябва да създадем набор от реплики от монгоДБ екземпляри.

Нека си представим, че имаме три сървъра, repl1, repl2 и repl3, където repl1 е основният сървър, а останалите са вторични.

Добавяне на репликация на първичен възел в MongoDB:

  • Моля, уверете се, че екземплярите mongo.exe са инсталирани на всички дадени сървъри.
  • Всички mongod.exe трябва да са в състояние да пинг един друг, т.е. те са в състояние да комуникират. За да проверите същото, моля, изпълнете следните команди от първичните сървъри (в началото), т.е. repl1 в нашия случай.

mongo –host repl2 –port 27017

mongo –host repl3 –port 27017

По подобен начин можем да направим същия тест и от други сървъри

  • С помощта на командата mongo –replset би трябвало да можем да стартираме първия си екземпляр mongod.exe.
    mongo –replset “Replica_A” Когато Replica_A е името на нашия набор от реплики.
  • Що се отнася до сега, ние добавихме първия сървър към нашия реплика, следващата стъпка е да инициираме реплика набора чрез издаване на командата rs.initiate ().
  • Следващата стъпка е стъпката на проверка, при която ще гарантираме, че каквото и да сме конфигурирали досега е правилно, можем да го направим, като изпълните командата rs.conf ().

Добавяне на репликация на вторичен възел в MongoDB:

След като първичният сървър е добавен, е лесно да добавите другите вторични възли, можем да го направим чрез издаване на командата rs.add ().

Следователно, изпълнете командата по-долу, като repl1 е нашият основен сървър и repl2 и repl3 са вторични сървъри съответно.

rs.add ( "repl2")

rs.add ( "repl3")

Премахване на сървъри от реплика:

За да премахнете сървър от всеки набор реплики, това може да стане с помощта на командата rs.remove ().

Има някои стъпки, които участват в процеса, както е дадено по-долу:

  • Отначало изключете инстанцията, който трябва да бъде премахнат. Това може да стане чрез стартиране на командата db.shutdownserver чрез mongo клетка.
  • Следващата стъпка е да се свържете с основния сървър.
  • Изпълнете следната команда, да речем, че имаме repl1, repl2 и repl3 като първичен и вторичен сървър съответно и искаме да премахнем repl3, тогава ще изпълним следната команда:

rs.remove ( "repl3")

Някои команди за отстраняване на проблеми

  • Всички mongod.exe трябва да са в състояние да пинг един друг, т.е. те са в състояние да комуникират. За да проверите същото, моля, изпълнете следните команди от първичните сървъри (в началото), т.е. repl1 в нашия случай.

mongo –host repl2 –port 27017

mongo –host repl3 –port 27017

По подобен начин можем да направим същия тест и от други сървъри

  • Rs.status () ще даде статуса на вашия набор от реплики
  • За проверка на оплог, който е лог за запис на всички операции по записване, които са били направени, издайте тази команда - rs.printReplicationInfo.

Предимства на репликацията в MongoDB

Целта на репликацията е да гарантира, че имаме висока наличност на данни. В случай че някой от сървърите изпадне, винаги трябва да имаме копие на данните, налични на друг сървър, за да не се повлияе на наличността. Репликацията е много ефективна и в случай на балансиране на натоварването, например, ако имаме номер от потребителите на се опитват да четат или записват данни на сървъри.

И така, накратко, основните предимства на репликацията служат на следната цел:

  1. Висока наличност
  2. Балансиране на натоварването

Заключение:

Както видяхме, репликацията на MongoDB е процес, при който репликираме данните на повече от един сървър, за да гарантираме висока достъпност. Това може да се направи чрез създаване на набор от реплики и добавяне на първичен и вторичен сървър.

Препоръчани статии:

Това е ръководство за репликация в MongoDB. Тук обсъждаме създаването, работата, работата, предимствата и някои команди за отстраняване на проблеми. Можете да разгледате и другите ни предложени статии, за да научите повече -

  1. Инструменти за графичен интерфейс на MongoDB
  2. MongoDB Команди
  3. Алтернативи на MongoDB
  4. Как да инсталирате MongoDB