Um conjunto de réplicas do MongoDB requer pelo menos 2 ou 3 membros?

Respostas:

19

Você pode realmente executar um único "conjunto" de membros, se desejar.

3 membros (ou um número ímpar mais alto) é realmente melhor, no entanto. Os conjuntos de réplicas serão lidos apenas se a maioria do conjunto não estiver disponível; portanto, se você perder um membro em um conjunto de dois membros, o membro restante se tornará somente leitura.

Você pode executar dois membros efetivos, além de um membro "somente para votação" (chamado árbitro). Essa é a menor opção razoavelmente segura para um conjunto de réplicas.

MrKurt
fonte
6
Deseja destacar que dois membros não são um sistema tolerante a falhas. @MrKurt está correto em que se um membro for desativado (não planejado), o outro não poderá ser PRIMÁRIO e passará para SECUNDÁRIO (somente leitura). Em outras palavras, se você precisar de uma réplica na produção, 3 membros é o mínimo para tolerância a falhas contra uma falha do membro.
Bret Fisher
3

Isso é basicamente um problema de redação, porque os requisitos do tutorial não são uma declaração geral sobre conjuntos de réplicas, mas pertencem ao próprio tutorial. O requisito para implantar um conjunto de réplicas em geral é 1 ou mais, a maioria possui 2 ou mais, mas o tutorial ao qual você vincula é especificamente para implantar um conjunto de 3 membros:

Este tutorial descreve como criar um conjunto de réplicas de três membros a partir de três instâncias existentes do MongoDB

Portanto, o requisito para o tutorial é que o conjunto tenha 3 membros. No entanto, é um pouco confuso ter as duas instruções, então enviei uma solicitação de recebimento (EDIT: solicitação de recebimento agora foi mesclada) para limpá-lo um pouco.

Você pode ter um único nó mongod configurado para fazer parte de um conjunto de réplicas, mas estritamente falando, isso não seria um "conjunto". De fato, como a replicação usa mais recursos do que um autônomo mongod(basicamente por causa do oplog ), não há realmente sentido executar um único membro, a menos que seja uma medida temporária antes de adicionar outros membros ao conjunto ou se você precisar de um oplog para outros motivos (como backup).

Adam C
fonte