Un jeu de répliques MongoDB requiert-il au moins 2 ou 3 membres?

Réponses:

19

Vous pouvez en fait exécuter un "ensemble" de membres unique si vous le souhaitez.

3 membres (ou un nombre impair supérieur) est vraiment le meilleur, cependant. Les ensembles de réplicas sont en lecture seule si la majorité de l'ensemble n'est pas disponible, donc si vous perdez un membre dans un ensemble à deux membres, le membre restant devient en lecture seule.

Vous pouvez également exécuter deux membres à part entière plus un membre «votant uniquement» (appelé arbitre). Il s'agit de la plus petite option raisonnablement sûre pour un jeu de répliques.

MrKurt
la source
6
Je veux souligner que deux membres ne sont pas un système tolérant aux pannes. @MrKurt a raison de dire que si un membre tombe en panne (non planifié), l'autre ne peut pas être PRIMAIRE et passera au SECONDAIRE (lecture seule). En d'autres termes, si vous avez besoin d'une réplique en production, 3 membres est le minimum pour la tolérance aux pannes contre un membre défaillant.
Bret Fisher
3

Il s'agit essentiellement d'un problème de formulation car les exigences du didacticiel ne sont pas une déclaration générale sur les jeux de réplicas, elles concernent plutôt le didacticiel lui-même. La configuration requise pour le déploiement d'un jeu de réplicas est en général de 1 ou plus, la plupart en ont 2 ou plus, mais le didacticiel auquel vous vous connectez consiste spécifiquement à déployer un jeu de 3 membres:

Ce didacticiel explique comment créer un jeu de réplicas à trois membres à partir de trois instances existantes de MongoDB

Par conséquent, l'exigence pour le tutoriel est que l'ensemble ait 3 membres. Néanmoins, il est un peu déroutant d'avoir les deux déclarations, j'ai donc soumis une demande de pull (EDIT: la requête de pull a maintenant été fusionnée) pour la nettoyer un peu.

Vous pouvez avoir un seul nœud mongod configuré pour faire partie d'un jeu de répliques, mais à proprement parler, ce ne serait pas un "jeu". En fait, puisque la réplication utilise plus de ressources qu'un autonome mongod(essentiellement à cause de l' oplog ), il est vraiment inutile d'exécuter un seul membre, sauf si c'est comme une mesure temporaire avant d'ajouter d'autres membres à l'ensemble ou si vous avez besoin d'un oplog pour d'autres raisons (comme la sauvegarde).

Adam C
la source