Обзор репликации в MongoDB

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

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

Что такое репликация MongoDB?

Под репликацией мы подразумеваем кластеризацию серверов, которые выполняют те же функции. В случае 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 через ячейку Монго.
  • Следующим шагом является подключение к основному серверу.
  • Запустите следующую команду, скажем, у нас есть 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 GUI Инструменты
  2. MongoDB Команды
  3. MongoDB Альтернативы
  4. Как установить MongoDB