Apache Ignite Verfügbarkeitsproblem mit benutzerdefinierten CacheStoreAdapter

8

Ich mache ein PoC mit Apache entzünden. Hier ist das Szenario, das ich gerade teste:

  1. Starten Sie einen Cluster aus 3 Knoten und einem Client.
  2. Rufen Sie den Schlüssel auf. Ich melde mich am Knoten an, der diesen Schlüssel speichert .
  3. Rufen Sie den Schlüssel auf. Ich überprüfe, dass es gespeicherten Wert erhält.
  4. Machen Sie einen loadCache (). Alle Knoten melden erfolgreich Cache laden.
  5. Kill-Knoten, der ursprünglich den Schlüssel geladen hat
  6. Node neu starten, den ich gerade getötet habe.
  7. Abfrage nach Schlüssel erneut.

Die Schritte 6 und 7 haben Probleme. Wenn ich lange genug zwischen den beiden wähle, funktioniert alles wie es sollte. Wenn Sie versuchen, 6 und 7 zu nahe beieinander zu machen, bekomme ich diesen Fehler auf dem Client und Dieser Fehler auf dem Knoten .

Ich sehe den Fehler IgniteClientDisconnectedException: Failed to wait for topology update, client disconnected. Aber gibt es eine Möglichkeit, dieses Problem zu vermeiden? Das Festlegen einer längeren Wartezeit auf ein Topologie-Update ist keine wirkliche Option, da ein Client jederzeit versuchen kann, eine Verbindung herzustellen. Hat es mit meiner Cluster-Konfiguration zu tun? Ich habe diese Dokumentation gesehen, die darauf hinweist, dass ich unendlich versuchen möchte, eine Verbindung herzustellen, die aussieht, als würde sie einfach nur irren.

>

Außerdem müssten wir in der Lage sein, den Cluster dynamisch zu vergrößern / verkleinern. Ist das möglich? Würden Sicherungen im Speicher die Funktionalität reparieren?

Beachten Sie, wenn ich Schritt 6 weglasse, habe ich nicht gesehen, dass es fehlschlägt.

Clusterknotenkonfiguration

%Vor%

Client-Konfiguration

%Vor%

Implementierte Methoden von CacheStoreAdaptor

%Vor%     
Carlos Bribiescas 03.08.2016, 20:43
quelle

1 Antwort

1

Ссылка betont das Die IgniteClientDisconnectedException stellt ein IgniteFuture , auf die durch Aufruf von

zugegriffen werden kann %Vor%

Diese Zukunft hat eine get() -Methode, die darauf wartet, dass der Knoten die Verbindung wieder herstellt:

  

wartet synchron auf den Abschluss der Berechnung und gibt das Berechnungsergebnis zurück.

Damit sollte Folgendes abgeschlossen sein, wenn der Client die Verbindung wieder hergestellt hat:

%Vor%     
serv-inc 13.08.2016, 12:23
quelle

Tags und Links