Невозможно подключиться к удаленному кластеру Cassandra с помощью драйвера Datastax PHP

В настоящее время я участвую в создании API, который использует кластер Cassandra с 3 узлами для хранения данных. Я разрабатывал его на своем локальном компьютере, используя PHP 5.6.17, Cassandra 2.2.3 и Datastax PHP Driver 1.1.0, и все прошло нормально.

Однако мы решили перейти на удаленный кластер Cassandra (3.4 с собственным протоколом 4), и я не могу получить к нему доступ через PHP, так как получаю следующую ошибку: Произошла ошибка: 16777226 - Нет доступных хостов для управляющего соединения .

Забавно то, что с помощью IP-адреса удаленного кластера и DevCenter мне удалось подключиться к этому кластеру, создать новое пространство ключей (SimpleStrategy, RF: 2), создать новую таблицу и добавить одну строку данных.

Ошибка при создании кода PHP следующая:

$cluster = \Cassandra::cluster() ->withContactPoints('x.x.x.x') ->build(); $keyspace = 'foo'; $session = $cluster->connect($keyspace);

Последняя строка вызывает ошибку. Однако, если я попытаюсь подключиться к локальному кластеру cassandra с помощью $cluster = \Cassandra::cluster()->build();, это сработает как шарм. Кто-нибудь знает, почему это происходит?


person Karvounis    schedule 06.04.2016    source источник
comment
Я обнаружил, что официальный драйвер php для Cassandra не поддерживает Cassandra 3.x. Я постараюсь выяснить, разветвил ли кто-нибудь это репо и попытался его исправить. Мы будем очень признательны, если кто-нибудь узнает об этом больше.   -  person Karvounis    schedule 06.04.2016


Ответы (1)


Попробуйте это решение

Добавьте "-> withPort (номер_порта)" по умолчанию: 9042 ИЛИ Проверьте, блокирует ли брандмауэр доступ на вашем хост-компьютере.

person Jyothis K P    schedule 14.05.2017