我目前正在创建一个API,该API使用具有3个节点的Cassandra集群来存储数据。我在我的本地机器上使用PHP 5.6.7、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();
连接到本地cassandra集群,那么它就像一个魅力。有人知道为什么会发生这种事吗?
尝试这些解决方案
Add"->withPort(port_number)"默认值为9042或检查防火墙是否阻止主机中的访问