MongoDB Plusieurs Maîtres dans ReplicaSet
J'ai une question concernant plusieurs maîtres du jeu de réplication avec MongoDB. J'ai le schéma suivant:
Serveur --> avec MongoDB & plusieurs applications
Serveur B --> avec MongoDB & plusieurs applications
Les deux instances de MongoDB sont organisés dans la même réplique (le Serveur A comme Principal, le Serveur B comme Secondaire). Mais maintenant, il est le problème. Les deux bases de données contiennent des données à partir des applications sur le serveur.
Est-il possible de déployer un Jeu de réplicas avec deux maîtres de sorte que les données à partir du Serveur est disponible dans MongoDB sur le Serveur B et vice-versa?
Je vous remercie beaucoup à l'avance
OriginalL'auteur DanielH | 2014-04-10
Vous devez vous connecter pour publier un commentaire.
Jeux de réplicas dans MongoDB ne pouvez avoir qu'un seul maître à ce point. (Il est appelé le primaire d'un jeu de réplicas.) Pour votre scénario, la solution est souvent d'utiliser une fragmenté cluster. Dans votre exemple, vous disposez de deux fragments: l'un pour les données d'Un serveur, et l'autre pour les données de serveur de B. les Deux fragments sont mis en œuvre comme les jeux de réplicas, donc chacun a un minimum de trois serveurs. Vous pouvez ensuite placer la primaire de l'Un éclat dans le même centre de données, et le principal de la B éclat dans un centre de données B. Au moins une réplique de chaque fragment (dit secondaire) serait situé dans l'autre centre de données.
Cela signifie que toutes les données sont disponibles dans chaque centre de données, mais écrit à l'Un éclat toujours besoin d'arriver dans Un centre de données, et écrit dans le fragment B dans un centre de données B. (Bien écrit peut également être fait à distance, de sorte que vous pouvez écrire à l'éclat d'Un de centre de données B, c'est juste que c'est une distance écrire dans ce cas.)
Je pense que vous avez tort dans cette phrase: ", écrit l'Un éclat toujours besoin d'arriver dans Un centre de données, et écrit dans le fragment B dans un centre de données B" parce que l'éclat de cluster doit utiliser des fragment de clé pour la distribution de données à travers le cluster. Et les données que vous avez inséré sur Une peuvent être trouvés sur B
OriginalL'auteur drmirror
Pas de MongoDB est seul maître uniquement.
La seule façon de créer deux répliques comme à l'heure actuelle, tout en gardant la synchronisation est de le faire manuellement, mais qui n'est pas conseillé.
Je pense que, si je suis en train de lire, il n'est pas encore possible, il suffit qu'un seul membre du jeu de réplicas peuvent être écrits à l'heure actuelle.
Ok, merci pour votre réponse. C'est dommage, mais pas variable au moment
OriginalL'auteur Sammaye
Question étrange, la réplication EST en effet destiné à servir exactement cet effet: pour stocker les mêmes données de manière redondante sur des serveurs différents.
Si vous avez mis en place, vous avez DÉJÀ atteint votre objectif. La fragmentation a peu (si ce n'est pas rien) à voir avec la haute disponibilité.
Vous n'avez pas besoin multimaster de configuration, si vous avez d'auto-basculement de travail. Pour cela, assurez-vous que vous avez au moins 3 données portant réplique membres ou 2+un arbitre pour eux d'être en mesure de former la majorité et l'élection d'un nouveau maître dans le cas où si l'ancien est déconnecté.
Vous pouvez l'ajuster electionTimeoutMillis paramètre pour autofailover vérifie à se produire plus fréquemment.
Lors de l'écriture des données importantes pour la base de données, vous pouvez utiliser { w: "majorité" } écrire préoccupation pour vous assurer que vos modifications ont été prises en compte sur la majorité des données portant serveurs et sont donc durables.
OriginalL'auteur Anatoly Alekseev