MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Jeu de réplicas MongoDB à deux nœuds sans arbitre

Réponse courte :non.

Réponse longue :la façon dont le basculement automatique fonctionne dans MongoDB est qu'un jeu de réplicas a besoin d'une majorité qualifiée pour élire avec succès un nouveau primaire. Les membres retardés ont droit de vote aux élections. Donc si soit de vos nœuds échoue, le jeu de réplicas découvre qu'il n'a pas cette majorité et le primaire actuel descend même s'il n'a pas échoué. Donc, ce que vous faites essentiellement, c'est doubler les chances de faire échouer votre jeu de répliques. Un arbitre est un processus très bon marché, en termes d'utilisation de la RAM, du processeur et même de l'espace disque lorsqu'il est exécuté avec --smallfiles --no-journal --noprealloc ou les options équivalentes définies dans le fichier de configuration. Notez que les options mentionnées sont sûres à utiliser, car un arbitre ne vérifie essentiellement que les battements de cœur des nœuds porteurs de données. Vous pourriez mettre l'arbitre sur le serveur d'application par exemple.

Avertissement :la procédure suivante est fortement déconseillée. Procédez à vos risques et périls.

Vous pouvez définir les votes du serveur retardé sur 0. De cette façon, le nœud non retardé appellera à une élection en cas d'échec du membre retardé, arrivera à la conclusion qu'il est le seul nœud en ligne du jeu de répliques et qu'il a la majorité des voix (1/1) et qu'il continuera à fonctionner comme prévu. Ce plan d'action nécessite une certaine attention, car vous aurez à nouveau un nombre pair de votes au cas où vous ajouteriez ultérieurement un membre au jeu de répliques et qu'il soit nécessaire de reconfigurer le jeu de répliques. Cela a également de sérieuses implications sur les problèmes de fragmentation du réseau. Encore une fois :Utilisez à vos risques et périls