Ist es möglich, einem Cassandra-Cluster dynamisch neue Hosts hinzuzufügen?
Was ich versuche, ist ein Programm zu erstellen, das:
Das Erstellen eines Clusters mit mehreren Hosts erfordert normalerweise das Konfigurieren von cassandra.yaml zum Speichern der Seeds, listen_address und rpc_address jedes Hosts.
Meine Idee ist es, diese Dateien über Java zu bearbeiten und die neuen Host-Adressen wie erforderlich einzufügen, aber sicherzustellen, dass die Daten in den cassandra.yaml-Dateien jedes Benutzers korrekt sind.
Ich frage mich, ob jemand etwas Ähnliches getan hat oder einen Rat für einen besseren Weg hat, dies zu erreichen.
Ja ist möglich. In Netflix's Priam finden Sie ein komplettes Beispiel für ein dynamisches Cassandra-Cluster-Management (das jedoch für die Zusammenarbeit mit Amazon EC2 entwickelt wurde). p>
Für rpc_address und listen_address können Sie ein Startskript einrichten, das cassandra.yaml konfiguriert, wenn es nicht in Ordnung ist.
Für Seeds können Sie einen benutzerdefinierten Seed-Provider konfigurieren. Sehen Sie sich die Seed Provider für Netflix's Priam verwendet für einige Ideen, wie man es implementiert
Der schwierigste Teil wird darin bestehen, die jedem Knoten zugewiesenen Token auf effiziente Weise zu verwalten. Cassandra 1.2 ist um die Ecke und wird eine Funktion enthalten, die virtuelle Knoten genannt wird, die, IMO, in Ihrem Fall gut funktionieren werden. Sehen Sie die Präsentation von Acunu darüber
Tags und Links cassandra