Cassandra Java-Treiber: wie viele Kontaktpunkte sinnvoll?
In Java ich eine Cussandra cluster wie diese:
Cluster cluster = Cluster.builder().addContactPoints("host-001","host-002").build();
Muss ich angeben, alle hosts im cluster gibt es? Was ist, Wenn ich einen cluster mit 1000 Knoten? Muss ich nach dem Zufallsprinzip einige? Wie viele, und tun ich das wirklich zufällig?
InformationsquelleAutor henry | 2014-11-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich würde sagen, dass die Konfiguration Ihres Clients verwenden dieselbe Liste von nodes als Liste von Saatgut Knoten, die Sie konfiguriert Cassandra zu verwenden, wird Ihnen die besten Ergebnisse.
Wie Sie wissen, Cassandra-Knoten verwenden Sie die Samen von Knoten, einander zu finden und entdecken Sie die Topologie des Rings. Der Fahrer wird nur einer der Knoten in der Liste zu etablieren, die Kontrolle der Verbindung, die man verwendet, um herauszufinden, die cluster-Topologie, aber die Bereitstellung der client mit dem Samen von Knoten erhöhen Sie die chance, für den Kunden weiter zu bedienen im Falle der knotenfehler.
Sie haben meistens mehrere Samen Knoten in einem cluster und das gleiche gilt für die Konfiguration der Treiber.
InformationsquelleAutor Alex Popescu
Mein Ansatz ist, fügen Sie so viele Knoten, als ich kann-Der Grund ist einfach: die Samen sind nur erforderlich für den cluster starten, aber sobald der cluster läuft, Samen sind nur gemeinsame Knoten -- nur mithilfe von Samen führen kann, dass die Unmöglichkeit der Verbindung in einem funktionierenden cluster-Also habe ich mir selbst die besten Chancen, um die Verbindung zum cluster herstellen, halten eine mehr als angemessene Anzahl von Knoten-es reicht ein Knoten arbeiten, um den aktuellen cluster-Konfiguration.
Absolut nicht ... wahrscheinlich in einem so großen cluster würde ich behalten 30 Knoten wählen Sie in einer Weise, dass ein rack-Ausfall wird nicht dazu führen, dass alle diese Knoten nicht erreichbar sein.
Mein cluster hat 10 Knoten. Ich erwähne alle 10 Knoten in addContactPoints. Nun, wenn ich eine session von cluster-Objekt, wird es immer die gleiche, die Knoten ausführen, alle meine Abfrage in der selben Sitzung?
Nein, Knoten, berechnet werden die lese - /schreib-operation hängt an den hash-Wert Ihrer Taste. Und "proxy-Knoten" ist, afaik, random
InformationsquelleAutor Carlo Bertuccini
Dokumentation von DataStax
Aus, was ich verstehe, Sie sollte nur noch einen einzigen Ansprechpartner und der Fahrer wird entdecken Sie die Ruhe. Hoffe, das hilft. Ich persönlich benutze hector, die Sie in Aussehen sollte, auch.
Sie sind nur etwas besonderes, weil Sie notwendig zu entdecken, der rest des Clusters. Sobald der Fahrer verbunden mit mindestens einem Knoten in einem cluster, die es zu entdecken, die restlichen Knoten im cluster und load-balance-Anforderungen über alle von Ihnen (entsprechend dem load-balancing-Politik, die Sie konfiguriert haben). Überprüfen Sie heraus die load-balancing-docs der Ruby-Treiber, die Konzepte stammen direkt von den Java-Treiber - datastax.github.io/ruby-Treiber/features/load_balancing
+1, weil Sie auf die richtige und beste Beschreibung, die direkt aus der Dokumentation, aber wie henri sagt, es sagt deutlich, sollten Sie nicht verwenden eine einzelne IP, obwohl Sie wahrscheinlich nicht brauchen, Hunderte.
InformationsquelleAutor qualebs
Las ich einen interessanten Artikel über Netflix und Ihre Cassandra-installation.
Erwähnen Sie die Tatsache, dass Sie mit Ihrer Gorilla system zu nehmen, 33% der Cassandra-cluster und sehen, dass Ihre Systeme immer noch wie erwartet funktioniert.
Haben Sie rund 2.000 Cassandra Knoten und nahm 33% nach unten. Dies bedeutet, dass 1 von 3 Knoten sind Weg. (Über 660 Knoten für Netflix)
Wenn Sie wirklich Pech haben, sind alle verbindungen, die Sie angegeben sind Teil des 660 Knoten... Autsch.
Chancen sind jedoch, dass wenn Sie nur genügend Knoten und erwarten Sie niemals, dass ein Dramatisches Ereignis, wo mehr als 33% Ihrer Netzwerk ausfällt, dann sollten Sie in der Lage zu verwenden, eine ziemlich kleine Zahl, z.B. 6 Knoten, da mit einer solchen Anzahl, sollte man immer auf mindestens 4 bis...
Nun, es sollten auf jeden Fall gewählt werden, strategisch, wenn möglich. Das heißt, wenn Sie wählen 6 Knoten, die alle in einem rack-wenn Sie haben 6 verschiedene Gestelle, die Sie wahrscheinlich falsch gewählt. Stattdessen werden Sie wahrscheinlich wollen, um anzugeben, 1 Knoten pro rack. (Das ist, sobald Sie wachsen, viel, natürlich.)
Beachten Sie, dass wenn Sie eine Replikation Faktor 5 und 33% der Cassandra-Knoten runter gehen, du bist in Schwierigkeiten sowieso. In dieser situation, viele Knoten keinen Zugriff auf die Datenbank in einem KOLLEGIUM Weise. Beachten Sie, dass Netflix spricht darüber. Ihre Replikations-Faktor-nur 3! (d.h.
1/3 = 0.33
, und1/5 = 0.2
so 20%, das ist weniger als 33%.)Schließlich, ich weiß nicht, die Java-Treiber, ich benutze den C++ ein. Wenn es scheitert, bin ich gesagt. Also, was ich tun kann, ist zu versuchen, mit einem anderen Satz von IP-Adressen, wenn nötig, bis es funktioniert... Mein system hat eine Verbindung, die bleibt, bis zwischen client zugreift, so ist dies ein einmaliger Vorgang und kann ich das relais der Tatsache, dass dieser server verbunden ist Cassandra und können so akzeptieren client-verbindungen. Wenn Sie wieder zu Cassandra jedes mal, wenn ein client sendet eine Anfrage, es kann klug sein, nicht senden viele IPs an alle.
InformationsquelleAutor Alexis Wilke