我应该连接哪个Cassandra节点?

时间:2013-03-06 13:25:55

标签: cassandra netflix

我可能在这里误解了一些东西,因为我不清楚我应该如何连接到Cassandra集群。我在AWS上有一个由Priam管理的5个节点的Cassandra 1.2.1集群。我想使用Astyanax连接到这个集群,使用类似于以下代码的代码:

conPool = new ConnectionPoolConfigurationImpl(getConecPoolName())               .setMaxConnsPerHost(CONNECTION_POOL_SIZE_PER_HOST).setSeeds(MY_IP_SEEDS)
                .setMaxOperationsPerConnection(100) // 10000

我应该将什么用作MY_IP_SEEDS?我应该使用逗号分割的所有节点的IP吗?或者我应该只使用1台机器的IP(种子机器)?如果我只使用一台机器的ip,我担心这台机器会因请求过多而过载。

我知道Priam有“get_seeds”REST api(https://github.com/Netflix/Priam/wiki/REST-API),每个节点返回一个IP列表,我也知道每个RAC有一个种子。但是,我不确定如果种子节点出现故障会发生什么......在尝试建立新连接时我需要连接到其他人,对吗?

1 个答案:

答案 0 :(得分:2)

种子节点仅用于在节点启动时找到进入群集的方式 - 没有过载问题。

当然,其中一个节点必须可以在群集中到达并启动以启动并运行新节点。

因此,最好的方法是在启动节点之前从Priam更新种子列表。 Priam应该在自动更新的DNS条目后面。

如果您的可用性最高,您应该定期存储来自Priam的当前种子列表并以镜像方式存储它们,就像您存储木偶或厨师配置一样,即使Priam无法访问也能够获取节点