Только вторичные узлы в наборе реплик mongodb - PullRequest
2 голосов
/ 29 октября 2010

Я работаю над проектом, в котором я хочу иметь возможность указать, что определенные узлы набора реплик никогда не могут быть первичными узлами, т. Е. В случае сбоя, когда все первичные способные узлы умирают, систему следует преобразовать в чтение. - только состояние, пока не появится какой-нибудь основной способный узел. Это возможно? Если да, то как? Если нет, то как лучше обойти это.

Ответы [ 2 ]

3 голосов
/ 29 октября 2010

Это из документации (выделено мной):

priority - приоритет сервера для потенциального выбора в качестве основного.Член с наивысшим приоритетом, который вверх, станет основным.По умолчанию 1.0. Приоритет ноль означает, что сервер никогда не может быть основным .

Таким образом, установка приоритета на ноль должна достичь того, что вы хотите.

1 голос
/ 01 декабря 2010

Насколько я могу судить, mongodb не полностью поддерживает то, что вам требуется. Если вы перезапустите ведомое устройство, доступное только для чтения, в то время как первичное не будет, он перейдет в состояние STARTUP2, а не ВТОРИЧНО. Попытка запросить экземпляр Mongod во время STARTUP2 не удастся.

Так что, если у вас была ненадежная настройка, например, ваш кластер мастеров и кластер серверов только для чтения в одном и том же городе, и произошло отключение питания, и вы в конечном итоге отключили основной DC (кто-то забыл проверить генераторы и ИБП), и серверы только для чтения снова заработали генератор в других DC работает нормально) тогда вы окажетесь в ситуации, когда не будут работать ведомые.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...