В настоящее время я занимаюсь созданием 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);
Последняя строка — та, которая выдает ошибку. Тем не менее, если я пытаюсь подключиться к локальному кластеру Кассандра с помощью $cluster = \Cassandra::cluster()->build();
тогда это работает как шарм.
У кого-нибудь есть идеи, почему это происходит?
Попробуйте это решение
Добавить «-> withPort (номер_порта)» по умолчанию 9042
ИЛИ ЖЕ
Проверьте, что брандмауэр блокирует доступ на вашем хост-компьютере.
Других решений пока нет …