Jak można powiedzieć kierowcy Datastax Java Cassandra do limitu czasu, gdy próbuje połączyć się z klastra?Powiedz kierowcy Datastax Java Cassandra aby limit czasu połączenia klastra
Jestem szczególnie zainteresowany przypadkiem, gdy hosty są osiągalne, ale porty Cassandra są zablokowane lub demony Cassandra nie działają. Piszę klienta wiersza poleceń, który powinien wyjść i zgłosić odpowiedni komunikat o błędzie, jeśli nie może nawiązać połączenia w rozsądnym czasie. Obecnie wydaje się, że kierowca będzie czekał na zawsze, aby punkt kontaktowy mógł odpowiedzieć, jeśli punkt kontaktowy jest osiągalny.
To znaczy, chcę, aby Cluster.build()
rzucił NoHostAvailableException
, jeśli kierowca nie może komunikować się z demonem Cassandra któregokolwiek z punktów kontaktowych w danym maksymalnym czasie.
- Tworzenie własne
RetryPolicy
nie zadziała: to dla zapytań Ponowna próba i chcę timeout zastosować przed jesteśmy gotowi do uruchomienia zapytania. - Tworzenie mój własny
ReconnectinoPolicy
początkowo wyglądał obiecująco, ale kontrakt dla interfejsu daje żadnych środków do wskazywania „rozważyć ten węzeł nie żyje wiecznie więcej”
Możliwe, ja faktycznie widząc drugi przypadek. Muszę przegapić tę opcję gniazda. Jak sugerujesz, to powinno wystarczyć w większości przypadków. – Raedwald
@Raedwald, czy zgłosiłeś błąd dla tego problemu, czy też było łatwiejsze rozwiązanie? –