В предыдущих статьях мы обсуждали многие аспекты набора реплик в mongodb. И в этих статьях мы много говорили о членах. Итак, что это за члены? Какова их цель? Давайте обсудим эти вещи в этой статье.
Какие участники в mongodb?
Короче говоря, члены в mongodb — это процессы mongod, которые необходимо выполнить в наборе реплик. Сейчас вообще всего 2 члена:
Primary:
Согласно mongodb.org первичные члены получают все операции записи.
Secondary:
Вторичные реплицируют операции с основного для поддержания идентичного набора данных. Дополнительные устройства могут иметь дополнительные конфигурации для специальных профилей использования. Мы можем использовать максимум 12 элементов в наборе реплик. Из которых только 7 могут голосовать. Итак, теперь возникает вопрос: почему члены должны голосовать?
Выбор для основного члена:
Всякий раз, когда начинается набор реплик или основной элемент недоступен. Или, если говорить простым языком, если нет основного члена, то выборы начинаются с выбора основного члена из дополнительных членов. Хотя есть несколько типов участников, чем до 2, мы поговорим о них позже.
Основной член:
Основной элемент — единственный элемент в наборе реплик, который получает операции записи. Mongodb применяет операции записи к первичному серверу, а затем записывает операции в оплог первичного сервера. Все члены набора реплик могут принимать операции чтения. Но по умолчанию приложение направляет свои операции чтения первичному члену. Набор реплик может содержать не более одного основного объекта.
В следующем наборе реплик с тремя участниками первичный принимает все операции записи. Затем вторичные серверы реплицируют оплог для применения к своим наборам данных.
Вторичный член:
Вторичный член поддерживает копию набора данных первичного устройства. Для репликации данных вторичный сервер применяет операции из оплога первичного сервера к своему собственному набору данных в асинхронном процессе. Набор реплик может иметь один или несколько вторичных элементов. Данные не могут быть записаны во вторичные, но данные могут быть прочитаны из вторичных членов. В случае отсутствия первичного члена вторичный член может быть первичным путем выборов.
В следующем наборе реплик из трех элементов дополнительный элемент копирует основной элемент.
Скрытые участники:
Кроме двух предыдущих членов, есть другие члены, входящие в набор реплик. Один из них — скрытый член. Скрытые участники не могут стать первичными и невидимыми для клиентских приложений. Скрытые участники голосуют на выборах. Скрытые участники хороши для рабочих нагрузок с другими шаблонами использования, чем у других участников в наборе реплик. Также они всегда должны быть членами с приоритетом 0 и поэтому не могут стать первичными. Наиболее распространенное использование скрытых узлов — поддержка задержанных членов. Чтобы настроить вторичный элемент как скрытый, установите его значение приоритета равным 0 и установите для его скрытого значения значение true в конфигурации его элемента.
Чтобы настроить скрытый член, используйте следующую последовательность в оболочке mongo, подключенной к основному, указав элемент для настройки по индексу массива в массиве members:
1
2
|
c.members[ 0 ].priority = 0 c.members[ 0 ].hidden = true |
Задержанный член:
Другой участник задерживается. Задержанные участники также копируют данные из набора данных. Но, как следует из названия, скопированный набор данных задерживается, чем фактическое время. Как, например, мы можем сказать, что если у нас есть приложение, чтобы определить текущее время. Затем, если текущее время — 09:00, и у члена есть задержка на час, у члена с задержкой нет операции более поздней, чем 08:00.
Поскольку элементы с задержкой представляют собой «скользящую резервную копию» или текущий «исторический» снимок набора данных, они могут помочь в восстановлении после различных видов человеческих ошибок. Задержанные участники применяют операции из оплога с задержкой. Должно быть равно или больше, чем ваши окна обслуживания. Должно быть меньше, чем емкость оплога. Для получения дополнительной информации о размере журнала.
Чтобы настроить задержанный вторичный элемент, установите для его значения приоритета значение 0, для скрытого значения — значение true, а для значения slaveDelay — количество секунд для задержки.
1
2
3
|
c.members[ 0 ].priority = 0 c.members[ 0 ].hidden = true c.members[ 0 ].slaveDelay = 1200 |
Члены без права голоса:
Существует много разговоров о выборах в наборах реплик. Таким образом, в выборах участвуют лишь немногие члены, которые дают голоса для определения основного члена. Но есть и несколько членов, которые не участвуют в голосовании. Эти члены называются не имеющими права голоса членами. Члены без права голоса позволяют вам добавлять дополнительных участников для чтения с прочтением, не превышая максимум семи членов с правом голоса.
Чтобы настроить участника как не имеющего права голоса, установите для его значения голосов 0.
1
2
|
c.members[ 5 ].votes = 0 c.members[ 4 ].votes = 0 |
Приоритет в членах:
Это основные несколько членов, которые мы должны помнить для наборов реплик. Чтобы попасть сюда, мы увидели много операций в качестве приоритета. Приоритет действительно очень важная вещь для обсуждения. Настройки приоритетов членов набора реплик влияют на результаты выборов в первичные. Значение параметра приоритета участника определяет приоритет участника на выборах. Чем выше число, тем выше приоритет.
Настройка приоритета участника:
Чтобы изменить приоритеты, мы должны обновить массив members в объекте конфигурации реплики. Значением приоритета может быть любое число с плавающей запятой от 0 до 1000. Значением по умолчанию для поля приоритета является 1. Отрегулируйте приоритет во время окна планового обслуживания. Переконфигурирование приоритета может заставить текущий первичный орган уйти в отставку, что приведет к выборам. Чтобы запретить участнику искать выборы в качестве основного, присвойте приоритет этого члена 0.
Мы можем завершить настройку приоритета в 3 простых шага. Давайте посмотрим на них:
- Скопируйте конфигурацию набора реплик в переменную.
В оболочке mongo используйте rs.conf (), чтобы получить конфигурацию набора реплик и назначить ее переменной. Например:
1
|
c = rs.conf() |
- Измените значение приоритета каждого участника.
Измените значение приоритета каждого члена, как настроено в массиве members.
1
2
|
c.members[ 0 ].priority = 0.5 c.members[ 1 ].priority = 2 |
Эта последовательность операций изменяет значение c, чтобы установить приоритет для первых двух членов, определенных в массиве members.
- Присвойте реплике набор новой конфигурации.
Используйте rs.reconfig (), чтобы применить новую конфигурацию.
1
|
rs.reconfig(c) |
В этой статье мы обсудили элементы в наборе реплик. Теперь мы можем сказать, что члены являются самой основой наборов реплик. Чем больше мы узнаем об участниках, тем быстрее мы будем контролировать данные в mongodb.
Ссылка: | Члены набора реплик в Mongodb от нашего партнера JCG Бисвадипа Гхоша в блоге на блоге Флокс . |