0

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

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

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

谢谢

4

1 回答 1

2

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

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

查看有关create keyspace的文档。这在内部如何处理与集群的 snitch 定义和每个 keyspace 定义的策略选项有关。在上面的SimpleStrategy的情况下,这只是假设您的集群的环形拓扑,并将数据顺时针放置在该环中(请参阅this)。

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

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

阅读文档

如果您在客户端中使用 Java 和 DatatStax Java 驱动程序,则可以使用

QueryOptions.setConsistencyLevel(ConsistencyLevel consistencyLevel) 

“一”是默认设置。

希望有帮助

于 2014-04-03T15:38:12.423 回答