В документации здесь сказано три: http://docs.mongodb.org/manual/tutorial/deploy-replica-set/
«Набор реплик требует трех различных систем ...»
В то время как документация здесь говорит два: http://docs.mongodb.org/manual/core/replication/
«Большинство наборов реплик состоит из двух или более экземпляров mongod ...»
Кто-нибудь знает, что правильно?
Вы действительно можете запустить «набор» с одним членом, если хотите.
Тем не менее, 3 члена (или большее нечетное число) действительно лучше. Наборы реплик переходят только для чтения, если большая часть набора недоступна, поэтому, если вы потеряете член в наборе из двух элементов, оставшийся член станет доступен только для чтения.
Вы можете запустить двух полноправных членов плюс член «только с правом голоса» (называемый арбитром). Это самый маленький разумно безопасный вариант для набора реплик.
В основном это проблема формулировки, потому что требования в руководстве не являются общим заявлением о наборах реплик, а относятся к itelf учебника. Обычно для развертывания набора реплик требуется 1 или более, у большинства их 2 или более, но руководство, на которое вы ссылаетесь, предназначено специально для развертывания набора из 3 элементов:
В этом руководстве описывается, как создать набор реплик из трех членов из трех существующих экземпляров MongoDB.
Следовательно, для учебника требуется, чтобы в наборе было 3 члена. Тем не менее, наличие этих двух утверждений немного сбивает с толку, поэтому я отправил запрос на вытягивание (РЕДАКТИРОВАТЬ: запрос на перенос теперь объединен), чтобы немного его очистить.
У вас может быть один узел mongod, настроенный как часть набора реплик, но, строго говоря, это не будет «набор». Фактически, поскольку репликация использует больше ресурсов, чем автономная mongod
(в основном из-за oplog) действительно нет смысла запускать один элемент, если только это не временная мера перед добавлением других элементов в набор или если вам нужен журнал операций по другим причинам (например, для резервного копирования).