2017-10-26 1 views
2

Ich implementiere derzeit einen Spring-Boot-Microservice, der Daten auf einem einzigen Cassandra-Datenbankknoten speichert. Ich muss die Anzahl der Wiederholungen festlegen können, wenn die Verbindung zur Datenbank verloren geht und die Anzahl der Millisekunden zwischen den Wiederholungen in der Microservice-Konfigurationsdatei. Ich benutze "Spring-Boot-Version 1.5.6" und Spring-Data-Cassandra Version 1.5.6 ". Ich konnte die Anzahl der Millisekunden zwischen Wiederholungen durch Erstellen von Cluster des Typs CassandraCqlClusterFactoryBean und die Übergabe einer benutzerdefinierten Wiederverbindungsrichtlinie in der cluster.setReconnectionPolicy() Allerdings kann ich die Anzahl der Wiederholungen nicht mit einer benutzerdefinierten Wiederholungsrichtlinie festlegen.Wenn sie richtig verstanden wird, behandelt die Wiederholungsrichtlinie nur den Fall, in dem eine Abfrage durchgeführt wird, aber in meinem Fall muss ich die Anzahl der Wiederholungen in allen festlegen Mal, egal ob eine Abfrage erfolgt oder nicht Nach ein paar Tagen Recherche konnte ich einen hässlichen Hack erzeugen, der grundsätzlich eine benutzerdefinierte ReconnectionSchedule verwendet und die Springboot-Anwendung stoppt, nachdem bestimmte Bedingungen in der nextDelayMs() Methode erfüllt sind fuhr fort, im Quellcode im Debug-Modus zu suchen, und ich sah, dass eine NoHostAvailableException Ausnahme von der ControlConnection geworfen wird. Also überprüfte ich den Datastax Offic ial Dokumentation in Bezug auf Control connection, und ich fandSpring Data Cassandra, wie endliche Anzahl von Verbindungswiederholungen zu setzen?

Coming soon ...

mir So könnte jemand bitte zeigen, wie man richtig einen Weg zur Umsetzung des Anhaltens meiner cassandra Fahrer mit dem Knoten nach einer vordefinierten versuchen, wieder zu verbinden Anzahl der Wiederholungen.

Vielen Dank im Voraus.

Antwort

1

Look here bei 9.3.1.

Vielleicht können Sie so etwas wie den Versuch machen, eine Sitzung alle x Sekunden zu öffnen, bis ein Timeout abgelaufen oder eine Sitzung erfolgreich erstellt wurde.

Verwandte Themen