2016-04-09 14 views
-1

Ich schreibe ein Automatisierungsskript, das 4 Instanzen in AWS erstellen und den rethinkdb-Cluster auf ihnen ohne menschliche Interaktion implementieren soll. Entsprechend der Dokumentation muss ich entweder --join Parameter in der Befehlszeile verwenden oder join Anweisungen in Konfigurationsdatei setzen. Was ich jedoch nicht verstehe, ist, ob ich join nur einmal angeben muss, um den Cluster zu erstellen, oder jedes Mal, wenn ich einen der Clusterknoten neu starte?Erstellen von rethinkdb-Cluster

Mein derzeitiges Verständnis ist, dass ich es nur einmal ausgeben muss, die Cluster-Konfiguration ist irgendwie in Metadaten gespeichert und das nächste Mal kann ich einfach rethinkdb ohne --join Parameter starten und es wird wieder mit dem Rest des Clusters selbstständig verbinden. Aber wann würde ich dann die join Option in der Konfigurationsdatei benötigen?

Wenn dies der Fall ist, muss ich dann rethinkdb mit der Option --join in meinem Skript starten, dann herunterfahren und dann wieder ohne --join starten? Ist dies der richtige Weg oder gibt es bessere Alternativen?

+0

Ich würde eine Erklärung von Downvoters schätzen. – dtoux

+0

Ich habe nicht downvote, aber das ist ziemlich einfach auf Ihrem Dev-Rechner zu testen. Führen Sie einfach die zweite Instanz mit '-o 1 -d/einige/andere/pfad -j localhost: 29015' aus, halten Sie sie an und führen Sie sie erneut ohne Join aus. Sehen Sie, was in den Admin-Schnittstellen an den Ports 8080 und 8081 passiert. – analytik

+0

@analytik, ja, das ist es, was ich gemacht habe, aber ich habe auf eine schnelle Antwort gehofft :-) – dtoux

Antwort

1

Sie haben recht, dass Sie beim nächsten Neustart --join nicht über die Befehlszeile angeben müssen. Dadurch wird der Cluster erkannt und versucht, eine erneute Verbindung herzustellen. Ein Teil des Clusterstatus wird in der Systemtabelle server_config gespeichert.

Auch wenn Sie das Datenverzeichnis auf einem dieser Knoten gelöscht haben, kann es dennoch Cluster bilden, da andere Knoten Informationen über diesen Knoten haben und versuchen, eine Verbindung zu ihm herzustellen. Wenn jedoch kein anderer Knoten Informationen über diesen bestimmten Server speichert oder wenn dieser bestimmte Knoten aus irgendeinem Grund neu gestartet wird und eine neue IP-Adresse hat und sein Datenverzeichnis ebenfalls gelöscht wird, weiß der Cluster dies nicht (mit neuer IP-Adresse).

Also, ich werde immer angeben --join. Es tut nicht weh. Und es hilft im schlimmsten Fall, dass der neue Knoten wieder dem Cluster beitreten kann.