两个群集,每个群集有12个节点 - Cassandra数据库

时间:2013-04-11 05:21:45

标签: java cassandra cluster-computing pelops

我已经开始处理我正在使用Cassandra database的项目。

我们的生产DBA已设置two cluster,每个群集都有12 nodes

我将使用Pelops client从Cassandra数据库中读取数据。现在我在想使用Cluster创建Pelops client类的最佳方法是什么,比如在创建集群时我应该向Pelops添加多少个节点?

我的理解是使用pelops client和所有24 nodes创建群集,因为我将拥有两个群集,每个群集有12个节点?这是正确的方法吗?

如果没有,那么我们如何决定在使用Pelops客户端创建集群时应该添加哪些节点(来自每个集群)?

String[] nodes = what nodes I should use from two clusters? And how many nodes I should add?; 

int port = cfg.getInt("cassandra.port"); 

boolean dynamicND = true; // dynamic node discovery 

Config casconf = new Config(port, true, 0); 

Cluster cluster = new Cluster(nodes, casconf, dynamicND); 

Pelops.addPool(Const.CASSANDRA_POOL, cluster, Const.CASSANDRA_KS);

任何人都可以帮我解决这个问题吗?

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

我会尝试更好地解释另一篇文章中的评论。我的建议是给每个集群的种子提供pelops。假设每个集群有2个种子,我将使用这4个节点来创建我的池。

你正在使用Pelops - 来自Dominic Williams(Pelops创作者)文档:

要创建池,您需要指定名称,已知联系节点列表(库可以自动检测集群中的其他节点,但最后请参阅说明) ,节点正在侦听的网络端口,以及控制池中连接数等事件的策略。 - 因此不必传递整个节点列表。

来自Cassandra文件:

Cassandra节点使用一种名为Gossip的机制来交换彼此的信息,但是为了让滚动新的节点需要知道至少另一个节点,这就称为种子。习惯上选择少量相对稳定的节点作为种子,但这里没有严格的规则

我与Pelops一起生产3年(从Cassandra 0.6开始,现在1.0.6)和使用种子作为节点列表的方法......工作正常!

一些提示:

1:如果您担心连接和响铃健康,您可以编写一个使用EACH_QUORUM CL进行“随机查询”来检查连接的类 - 以及使用Nodetool java类检查环的健康状况的类< / p>

2:如果你在cassandra中执行删除,请记住nodetool修复的重要性(http://wiki.apache.org/cassandra/Operations#Repairing_missing_or_inconsistent_data

此致 卡罗

相关问题