代码之家  ›  专栏  ›  技术社区  ›  arsenal Rivasa

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

  •  0
  • arsenal Rivasa  · 技术社区  · 13 年前

    我已经开始从事一个我正在使用的项目 Cassandra database .

    我们的生产DBA已经设置好了 two cluster 并且每个集群将具有 12 nodes .

    我将使用 Pelops client 从Cassandra数据库中读取数据。现在我在想什么是最好的创作方式 Cluster 类使用 Pelops客户端 比如我应该添加多少个节点 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 回复  |  直到 13 年前
        1
  •  0
  •   Carlo Bertuccini    13 年前

    我会尽量在另一篇文章中更好地解释这一评论。我的建议是只给Pelop每个簇的种子。假设每个集群有2个种子,我会使用这4个节点来创建我的池。

    您正在使用Pelops——来自Dominic Williams(Pelops创建者)文档:

    要创建一个池,您需要指定一个名称,一个已知联系人节点的列表( 库可以自动检测集群中的其他节点 ,但请参阅末尾的注释)、节点正在侦听的网络端口,以及控制池中连接数等内容的策略。 --因此没有必要传递整个节点列表。

    来自Cassandra文档:

    Cassandra节点使用称为Gossip的机制来交换关于彼此的信息, 但为了让球滚动起来,一个新启动的节点需要知道至少一个其他节点,这被称为种子。通常会选择少量相对稳定的节点作为种子 ,但这里没有硬性规定

    我从3年开始使用Pelops(从Cassandra 0.6开始,现在是1.0.6)和只使用种子作为节点列表的方法。。。效果很好!

    几个提示:

    1:如果你担心连接和环的健康状况,你可以写一个类,使用EACH_QUORUM CL进行“随机查询”来检查连接,以及一个类使用Nodetool java类来检查环的健康情况

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

    当做 卡洛