![连接到 Cassandra 集群](https://linux22.com/image/803242/%E8%BF%9E%E6%8E%A5%E5%88%B0%20Cassandra%20%E9%9B%86%E7%BE%A4.png)
我刚刚开始使用 Cassandra,有几个问题。我将按照 DataStax 文档在 AWS 上部署一个 4 节点集群 (http://www.datastax.com/docs/datastax_enterprise3.1/install/install_dse_ami)。
一旦我启动并运行了这个 4 节点集群,我将创建一个简单的 LAMP 服务器,它将(希望)对集群进行查询。我将使用 Cassandra-PDO 进行通信(http://code.google.com/a/apache-extras.org/p/cassandra-pdo/)。这样最终一共有 5 台服务器。
例如:
192.168.0.1 - Cassandra1
192.168.0.2 - Cassandra2
192.168.0.3 - Cassandra3
192.168.0.4 - Cassandra4
192.168.0.5 - LAMP 堆栈
如何平衡从 LAMP 服务器到 Cassandra 集群的所有请求?在 CPDO 示例中,他们提到了以下内容:
$dsn = "cassandra:host=192.168.0.1;port=9160,host=192.168.0.2,port=9160";
但是,如果我不知道 IP 是什么,我该怎么办?如果我添加新节点会发生什么?旧节点发生故障等等?您是否必须自己以某种方式对请求进行负载平衡?
如对以上内容有任何建议,我们将不胜感激!
干杯
答案1
这个 pdo 检查列表中第一个可用节点。如果第一个节点似乎已关闭,则它将使用第二个节点...您必须自己进行负载平衡(在我们的例子中,我们会对节点列表进行打乱)。但要小心这一点。您加入的节点不一定是处理您要读取/写入的行的节点。它只是处理请求的协调器。如果您添加新节点,则必须添加其 IP(如果您想将其用作可能的协调器),但这不会影响集群本身的运行。