我已经开始处理我正在使用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);
任何人都可以帮我解决这个问题吗?
任何帮助将不胜感激。
答案 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)
此致 卡罗