MongoMultiMaster

Logiciel capture d'écran:
MongoMultiMaster
Détails logiciels:
Version: 0.0.4
Date de transfert: 20 Feb 15
Développeur: Rick Copeland
Licence: Gratuit
Popularité: 85

Rating: 3.0/5 (Total Votes: 2)

MongoMultiMaster est un outil Python qui vous permet de configurer la réplication multi-maître avec MongoDB & nbsp;. Il est absolument pas pris en charge par 10gen, les fabricants de MongoDB.
Il fonctionne en interrogeant le journal d'opérations sur un jeu de réplicas et l'application de ses opérations à un autre jeu de réplicas. Il prend en charge la réplication bidirectionnelle en étiquetant chaque document reproduit avec sa source.
Installation
Pour installer, utiliser pip:
pip installer MongoMultiMaster
Configuration MongoDB
MMM doit avoir accès au jeu de réplicas journal d'opérations pour chaque maître. Cela signifie qu'il ne fonctionne pas avec les serveurs qui sont configurés comme serveurs autonomes. Pour convertir un serveur autonome à un jeu de réplicas singleton, vous devez d'abord dire que ce sujet de l'ensemble ce est dans au moment du lancement:
& Nbsp; mongod --replSet foo
Ensuite, pour démarrer le jeu de réplicas, vous devez exécuter la commande suivante à la coquille de mongo:
> Rs.initiate ()
Configuration MongoMultiMaster réplication
Une fois que vous avez créé la réplique maîtresse de jeu, vous aurez besoin de dire MMM où les serveurs sont. Cela se fait par un fichier de configuration YAML. Un exemple de fichier de configuration avec deux serveurs est inclus ci-dessous:
Server_A:
& Nbsp; id: '2c88ae84-7cb9-40f7-835d-c05e981f564d'
& Nbsp; uri: 'mongodb: // localhost: 27019 "
server_b:
& Nbsp; id: '0d9c284b-b47c-40b5-932c-547b8685edd0'
& Nbsp; uri: 'mongodb: // localhost: 27017 "
D'abord, vérifier qu'il n'y a pas de configuration et que nous pouvons nous connecter à tous les serveurs dans le fichier de configuration:
 mmm -c test.yml clair-config
À propos pour effacer config sur les serveurs: ['Server_A »,« server_b'], vous êtes sûr? (Yn) y
Effacer config pour Server_A
Effacer config pour server_b
& Nbsp; mmm -c test.yml déverser-config
=== === Server Config
Server_A (2c88ae84-7cb9-40f7-835d-c05e981f564d) => mongodb: // localhost: 27019
server_b (0d9c284b-b47c-40b5-932c-547b8685edd0) => mongodb: // localhost: 27017
=== Server_A réplication Config
=== Server_b réplication Config
Ensuite, nous allons mettre en place deux collections répliqués:
& Nbsp; mmm -c test.yml répétition --src = Server_A / test.foo --dst = server_b / test.foo
& Nbsp; mmm -c test.yml répétition --src = Server_A / test.bar --dst = server_b / test.bar
Et confirment qu'ils sont configurés correctement:
 mmm -c test.yml dépotoir-config
=== === Server Config
Server_A (2c88ae84-7cb9-40f7-835d-c05e981f564d) => mongodb: // localhost: 27019
server_b (0d9c284b-b47c-40b5-932c-547b8685edd0) => mongodb: // localhost: 27017
=== Server_A réplication Config
=== Server_b réplication Config
& Nbsp; - test.foo <= Server_A / test.foo
& Nbsp; - test.bar <= Server_A / test.bar
Maintenant, nous allons faire l'bidirectionnel de réplication:
& Nbsp; mmm -c test.yml répétition --src = server_b / test.foo --dst = Server_A / test.foo
& Nbsp; mmm -c test.yml répétition --src = server_b / test.bar --dst = Server_A / test.bar
Et assurez-vous que ce est correct ...
 mmm -c test.yml dépotoir-config
=== === Server Config
Server_A (2c88ae84-7cb9-40f7-835d-c05e981f564d) => mongodb: // localhost: 27019
server_b (0d9c284b-b47c-40b5-932c-547b8685edd0) => mongodb: // localhost: 27017
=== Server_A réplication Config
& Nbsp; - test.foo <= server_b / test.foo
& Nbsp; - test.bar <= server_b / test.bar
=== Server_b réplication Config
& Nbsp; - test.foo <= Server_A / test.foo
& Nbsp; - test.bar <= Server_A / test.bar
Maintenant, nous pouvons exécuter le réplicateur:
& Nbsp; mmm -c test.yml terme
Points à considérer
- La réplication peut prendre du retard si vous écrivez beaucoup. Ce ne est pas traitée du tout.
- Réplication commence au moment où mmm terme a d'abord été appelé. Vous devriez être en mesure d'arrêter / démarrer mmm et le faire reprendre là où elle se était arrêtée.
- Les conflits entre les maîtres ne sont pas traitées; si vous écrivez à la même document sur les deux têtes fréquemment, vous pouvez sortir de synchronisation.
- Réplication insère un champ de comptabilité dans chaque document pour signifier l'UUID du serveur ce dernier a écrit le document. Cela élargit légèrement la taille de chaque document.
Il ya probablement des arêtes vives, d'autres bugs manqués, et diverses choses désagréables qui vous attendent si vous utilisez MMM dans un système de production sans test approfondi. . Mais si vous aimez courir avec des ciseaux et de vivre dangereusement contraire, ne hésitez pas à l'essayer

Exigences :

  • Python

Logiciel similaire

D'autres logiciels de développeur Rick Copeland

Ming
Ming

12 May 15

Zarkov
Zarkov

14 Apr 15

Commentaires à MongoMultiMaster

Commentaires non trouvées
Ajouter un commentaire
Tourner sur les images!