【问题标题】:Cassandra cluster with each node total replicationCassandra 集群与每个节点完全复制
【发布时间】:2014-04-03 10:10:50
【问题描述】:

您好,我是 Cassandra 的新手。我有一个 2 节点 Cassandra 集群。由于前端强加的原因,我需要...

  1. 两个节点上的所有数据的总复制。
  2. 最终一致的写入。因此,被写入的节点将立即响应前端的确认。复制时未同步

谁能告诉我这可能吗?它是在 YAML 文件中完成的吗?我知道那里有保持一致性的属性,但我没有看到任何分区器适合我的需要。我在哪里可以设置复制因子?

谢谢

【问题讨论】:

    标签: cassandra cassandra-2.0


    【解决方案1】:

    您在创建键空间期间设置了复制因子。因此,如果您使用(并计划未来使用)单个数据中心设置,您可以像这样使用 cqlsh 创建密钥空间

    CREATE KEYSPACE "Excalibur"
    WITH REPLICATION = {'class' : 'SimpleStrategy', 'replication_factor' : 3};
    

    查看有关create keyspace 的文档。这在内部如何处理与snitch definition of the cluster and a strategy option defined per keyspace 有关。在上面的 SimpleStrategy 的情况下,这只是假设您的集群的环形拓扑,并将数据顺时针放置在该环中(请参阅this)。

    关于一致性,您可以在每次操作期间为客户端/驱动程序中的写入和读取操作提供不同级别的一致性:

    Cassandra 通过提供可调一致性扩展了最终一致性的概念——对于任何给定的读取或写入操作,客户端应用程序决定所请求数据的一致性。

    Read the doc

    如果您在客户端中使用 Java,并且使用 DatatStax Java 驱动程序,您可以使用 set the consistency 级别使用

    QueryOptions.setConsistencyLevel(ConsistencyLevel consistencyLevel) 
    

    “一个”是默认设置。

    希望有帮助

    【讨论】:

    • 网络拓扑策略不是这种情况的一个很好的例子,虽然:-) 我认为SimpleStrategy 就足够了。他还应该阅读this
    • 感谢您非常清楚的回答。我试试这个。
    猜你喜欢
    • 2016-08-14
    • 2017-05-17
    • 2013-04-03
    • 2018-07-19
    • 2012-05-02
    • 2011-06-14
    • 2018-10-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多