Преглед на репликацията в 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
Целта на репликацията е да гарантира, че имаме висока наличност на данни. В случай че някой от сървърите изпадне, винаги трябва да имаме копие на данните, налични на друг сървър, за да не се повлияе на наличността. Репликацията е много ефективна и в случай на балансиране на натоварването, например, ако имаме номер от потребителите на се опитват да четат или записват данни на сървъри.
И така, накратко, основните предимства на репликацията служат на следната цел:
- Висока наличност
- Балансиране на натоварването
Заключение:
Както видяхме, репликацията на MongoDB е процес, при който репликираме данните на повече от един сървър, за да гарантираме висока достъпност. Това може да се направи чрез създаване на набор от реплики и добавяне на първичен и вторичен сървър.
Препоръчани статии:
Това е ръководство за репликация в MongoDB. Тук обсъждаме създаването, работата, работата, предимствата и някои команди за отстраняване на проблеми. Можете да разгледате и другите ни предложени статии, за да научите повече -
- Инструменти за графичен интерфейс на MongoDB
- MongoDB Команди
- Алтернативи на MongoDB
- Как да инсталирате MongoDB