Пытаюсь подключиться к кластеру 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. Спасибо!
Оказывается, драйвер cassandra-sharp в настоящий момент не поддерживает Cassandra версии 3 и выше, нужно использовать 2. Разработчик посоветовал решения компании Datastax. Вопрос можно считать закрытым.
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Как грамотно использовать много-поточность что бы обрабатывать большие текстовые документыДопустим у меня есть документ
Мой статический класс Logger пишет лог в текстовый файлФайл лога новый каждый день и на каждого пользователя
В клиенте RdKafka мне необходимо прочитать Avro сообщенияВ консоли я дописывал свойство: