MongoDB Chaîne de connexion au jeu de réplicas
Je suis en train de regarder http://mongodb.github.io/node-mongodb-native/driver-articles/mongoclient.html et lorsque vous faites défiler jusqu'à la section "Un jeu de réplication se connecter en utilisant pas d'accusé de réception par défaut et readPreference secondaire"
il a déclaré à une chaîne de connexion au jeu de réplicas comme ceci:
MongoClient.connect("mongodb://localhost:30000,localhost:30001/integration_test_?w=0&readPreference=secondary", function(err, db) {
}
Je ne comprends pas pourquoi devez spécifier 2 hôtes. Je pensais que la mongodb documentation déjà déclaré que la réplique est transparent pour le client. le sens de la client a juste besoin de se connecter à la primaire du jeu de réplicas et mongodb va faire le travail. Par conséquent, la connexion devrait être juste contenir 1 hôte. Mongodb doc dit qu'il doit y avoir au moins 3 hôtes dans un jeu de réplicas et de cette chaîne de connexion spécifié seulement 2 hôtes.
En outre, pourquoi la chaîne de connexion n'est rien en indiquant le "jeu de réplication" ?
source d'informationauteur Mark Thien
Vous devez vous connecter pour publier un commentaire.
La plusieurs serveurs dans la chaîne de connexion servir comme une semence de la liste pour découvrir le mode de connexion. Vous avez raison dans ce que vous pourrait il suffit de spécifier le serveur principal et les choses fonctionne parfaitement. Qui est, jusqu'à ce que le serveur principal tombe en panne ou est très occupé. En spécifiant plusieurs machines dans la chaîne de connexion, vous donner au client plus d'un emplacement de requête pour la configuration du jeu de réplicas.
Lorsque le mode de connexion correspond à un jeu de réplicas (voir plus bas), le pilote de trouver le serveur principal, même si elle n'est pas dans la liste graines, tant qu'au moins l'un des serveurs de la liste graines répond (la réponse contiendra l'intégralité du jeu de réplicas et le nom de l'actuel principal). En outre, d'autres secondaires sera également découverts et ajoutés (ou supprimé) dans le mélange automatiquement, même après la connexion initiale. Cela vous permettra d'ajouter et de supprimer des serveurs du jeu de réplicas et le pilote va gérer les modifications automatiquement.
Pour répondre à votre dernière question, car la spécification de plusieurs serveurs est ambigu quant à savoir si ou non il est un jeu de réplicas ou plusieurs mongos (dans une fragmenté de l'installation), le pilote va passer par une phase de découverte de la connexion aux serveurs afin de déterminer leur type. Cela a un peu de surcharge au moment de la connexion et peut être évité par la spécification d'un mode de connexion dans la chaîne de connexion, d'où le
replicaSet
mot-clé. Ainsi, alors qu'il n'est pas nécessaire, il peut accélérer votre temps de connexion pour indiquer explicitement les serveurs sont dans un jeu de réplicas dans la chaîne de connexion.