Исключение “Can't find any valid endpoint” в Cassandra-sharp

267
22 сентября 2017, 17:14

Пытаюсь подключиться к кластеру Cassandra с помощью .Net драйвера cassandra-sharp. Выходит исключение "Can't find any valid endpoint". Когда я запускаю пример клиента, как на github'e драйвера (https://github.com/pchalamet/cassandra-sharp), ошибка происходит на любой операции после подключения к кластеру, - например, на строке с командой Execute:

using (ICluster cluster = ClusterManager.GetCluster("Cassandra"))
{   
    ICqlCommand cmd = cluster.CreatePocoCommand();
    Task t = cmd.Execute("Select * from system_schema.keyspaces").AsFuture();
...}

В режиме debug я вижу свои хосты в дереве ICluster -> SingleConnectionPerEndpointStrategy -> _endpointStrategy -> NearestEndpointStrategy -> bannedEndpoints (здесь выпадает список из IP-адресов моих нодов), и при этом 0 узлов в списке healthyEndpoints.

Более того, если попробовать подключиться к любому узлу с помощью утилиты cqlplus.exe (входящей в исполняемые файлы cassandra-sharp драйвера), то получается та же ошибка. С флагом /dbglog эта утилита пишет примерно следующие сообщения:

Creating connection to 192.168.1.3

Readyfying connection for 192.168.1.3

Starting writing frame for stream 127@192.168.1.3

Done writing frame for stream 127@192.168.1.3

Failed building connection System.AggregateException: One or more errors occurred. ---> System.OperationCanceledException: The operation was canceled.

--- End of inner exception stack trace ---

at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)

at CassandraSharp.Transport.LongRunningConnection.ReadifyConnection() in ...\LongRunningConnection.cs:line 444

... Error creating transport for endpoint 192.168.1.3 : One or more errors occurrd.

... - marking 192.168.1.3 for recovery

Command execution failed with error: Can't find any valid endpoint

Использую свежую версию cassandra-sharp драйвера (3.7.0). Версия Cassandra 3.11.0. Конфигурационный файл приложения App.config выглядит нормально. Код идеален (из примера), а значит что-то не так с настройками кластера. Сеть простая, с одним коммутатором, всё пингуется, все порты Cassandra открыты в брандмауэре Windows на клиенте. Могу добавить любую вспомогательную информацию из конфигурационного файла cassandra.yaml, например, используется PropertyFileSnitch. В консоли cqlsh всё работает отлично, nodetool status выдаёт Up&Normal.

В чём проблема, в конфигурации кластера или в .Net драйвере, и как её решить? Нужна помощь специалистов по Cassandra. Спасибо!

Answer 1

Оказывается, драйвер cassandra-sharp в настоящий момент не поддерживает Cassandra версии 3 и выше, нужно использовать 2. Разработчик посоветовал решения компании Datastax. Вопрос можно считать закрытым.

READ ALSO
Обработка больших файлов

Обработка больших файлов

Как грамотно использовать много-поточность что бы обрабатывать большие текстовые документыДопустим у меня есть документ

196
Парсинг сложной Xml в С#

Парсинг сложной Xml в С#

Столкнулся с проблемойУ меня есть сложная xml

274
Организация записи в файл

Организация записи в файл

Мой статический класс Logger пишет лог в текстовый файлФайл лога новый каждый день и на каждого пользователя

256
RdKafka Avro Consumer

RdKafka Avro Consumer

В клиенте RdKafka мне необходимо прочитать Avro сообщенияВ консоли я дописывал свойство:

180