Ошибка драйвера Cassandra Java - все хосты, которые попытались выполнить запрос, не удались. Соединение было закрыто

Все,

У меня есть 3-узловой кластер cassandra в Digital Ocean. версия cassandra согласно SHOW VERSION в CQL показана ниже

[cqlsh 5.0.1 | Кассандра 3.0.0 | Спецификация CQL 3.3.1 | Собственный протокол v4]

Я могу подключиться к одному узлу кластера с другого узла, используя команды cqlsh и run... Однако, когда я пытаюсь подключиться с помощью драйвера java, я получаю следующее исключение

com.datastax.driver.core.exceptions.NoHostAvailableException: All host(s) tried for query failed (tried: /128.xxx.xxx.xx:9042 (com.datastax.driver.core.TransportException: [/128.xxx.xxx.xxx:9042] Connection has been closed))
at com.datastax.driver.core.ControlConnection.reconnectInternal(ControlConnection.java:222)
at com.datastax.driver.core.ControlConnection.connect(ControlConnection.java:77)
at com.datastax.driver.core.Cluster$Manager.init(Cluster.java:1232)
at com.datastax.driver.core.Cluster.getMetadata(Cluster.java:336)
at com.attinad.cantiz.iot.platform.vehicledatapoc.App.connect(App.java:22)
at com.attinad.cantiz.iot.platform.vehicledatapoc.App.main(App.java:14)

Я использую версию java-драйвера 2.0.10. Конфигурация maven приведена ниже

<dependency>
<groupId>com.datastax.cassandra</groupId>
<artifactId>cassandra-driver-core</artifactId>
<version>2.0.10</version>
</dependency>

Я проверил cassandra.yaml и обнаружил, что следующие настройки были установлены правильно.

start_native_transport: true
native_transport_port: 9042
rpc_address: 128.xxx.xxx.xx
listen_address: 128.xxx.xxx.xx

был настроен правильно... Так что я полностью потерян... Любая помощь приветствуется


person Sabarish Sathasivan    schedule 21.12.2015    source источник
comment
Вы видите что-нибудь в выводе сервера Cassandra? Я думаю, что драйверы Java 2.0 несовместимы с Cassandra 3.0. В этом случае вы должны увидеть ошибку в журналах сервера.   -  person Michael Koch    schedule 21.12.2015
comment
Это было причиной. Когда я использовал бета-драйвер 3.0.0, он начал работать, но драйвер находится в бета-версии, поэтому я немного обеспокоен   -  person Sabarish Sathasivan    schedule 21.12.2015
comment
У меня нет опыта работы со стабильностью драйвера, но я думаю, что безопаснее всего было бы использовать Cassandra 2 с выпущенным драйвером для системы, которую следует использовать в производстве. Если вы только пробуете Cassandra, использование бета-драйвера может подойти.   -  person Michael Koch    schedule 21.12.2015
comment
Я превратил свой комментарий в ответ.   -  person Michael Koch    schedule 21.12.2015


Ответы (2)


Согласно документации драйвера 2.0.10, эта версия драйвера совместим с Apache Cassandra 1.2 и 2.0. Совместимость с 3.0 добавлена ​​в драйвере 3.0, который в настоящее время находится в версии 3.0.0-beta1. Ошибка совместимости протокола должна отображаться в журналах сервера Cassandra.

Вы можете либо понизить Cassandra до версии 2.x, либо попробовать бета-драйвер. Понижение версии Cassandra должно быть более безопасным выбором, если вы хотите использовать систему в производственной среде прямо сейчас.

person Michael Koch    schedule 21.12.2015

Сам столкнулся с этим... попробовал Cassandra 3.0.0 с драйвером 2.1.9.

Исправил это, перейдя к драйверу 3.0.0.

person Adam Morgan    schedule 23.04.2016