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.