我目前正在参与创建一个 API,该 API 使用具有 3 个节点的 Cassandra 集群来存储数据。我在我的本地机器上使用 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();
那么它就像一个魅力。有人知道为什么会这样吗?