Я экспериментирую с наборами реплик MongoDB, чтобы протестировать сценарии высокой доступности. Я установил 3 реплики сервера. Когда я останавливаю основной сервер, один из оставшихся 2 серверов становится основным. После этого, когда я останавливаю новый первичный сервер, последний оставшийся сервер показывает его статус как вторичный.
Разве последний сервер не должен автоматически становиться основным? Или мне нужно настроить какие-то параметры, чтобы это произошло?
Каждый набор реплик MongoDB имеет не более одного первичного объекта, который выбирается на основе кворума. Строгое большинство членов набора реплик должно проголосовать за основного (т. Е. n
/ 2 + 1 голосов, где n
- количество настроенных членов набора реплик).
Если у вас есть единственный выживший член в наборе реплик из 3-х членов, этот член не может быть избран (или оставаться) основным, поскольку доступен только один голос.
Требование большинства голосов состоит в том, чтобы избежать наличия нескольких основных цветов в таких случаях, как разделение сети. Например, если все 3 члена набора реплик технически «активны», но не могут взаимодействовать друг с другом из-за сетевых проблем, только раздел с большинством членов набора реплик сможет поддерживать первичный.
Для получения дополнительной информации см. Выборы набора реплик в руководстве MongoDB.