Я хочу использовать Docker для запуска моего приложения и базы данных Cassandra, и я хотел бы использовать Docker Compose для этого. К сожалению, Cassandra запускается гораздо медленнее, чем мое приложение, и поскольку мое приложение с нетерпением инициализирует объект Cluster
, я получаю следующее исключение:
com.datastax.driver.core.exceptions.NoHostAvailableException: All host(s) tried for query failed (tried: cassandra/172.18.0.2:9042 (com.datastax.driver.core.exceptions.TransportException: [cassandra/172.18.0.2:9042] Cannot connect))
at com.datastax.driver.core.ControlConnection.reconnectInternal(ControlConnection.java:233)
at com.datastax.driver.core.ControlConnection.connect(ControlConnection.java:79)
at com.datastax.driver.core.Cluster$Manager.init(Cluster.java:1454)
at com.datastax.driver.core.Cluster.init(Cluster.java:163)
at com.datastax.driver.core.Cluster.connectAsync(Cluster.java:334)
at com.datastax.driver.core.Cluster.connectAsync(Cluster.java:309)
at com.datastax.driver.core.Cluster.connect(Cluster.java:251)
Согласно stacktrace и небольшой отладке, кажется, что драйвер Java Cassandra не применяет политики повтора к первоначальному запуску. Мне это кажется странным. Есть ли способ настроить драйвер, чтобы он продолжал попытки подключения к серверу до тех пор, пока он не завершится?