2013-03-06 63 views
2

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

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有一个种子。但是,我不确定如果种子节点关闭会发生什么......当尝试建立新的连接时,我需要连接到其他人,对吧?

回答

2

种子节点仅用于在节点启动时找到进入集群的路径 - 无过载问题。

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

所以最好的方法是在启动节点之前从Priam更新种子列表。 Priam应位于自动更新的DNS条目之后。

如果你是最高的可用性,你应该种子当前列表中的定期存储从普里阿摩斯并将其存储在一个镜像的方式,就像您存储的木偶或厨师的配置才能够得到节点工作,即使普里阿摩斯不到达。

相关问题