Cassandra 集群与每个节点完全复制
Posted
技术标签:
【中文标题】Cassandra 集群与每个节点完全复制【英文标题】:Cassandra cluster with each node total replication 【发布时间】:2014-04-03 10:10:50 【问题描述】:您好,我是 Cassandra 的新手。我有一个 2 节点 Cassandra 集群。由于前端强加的原因,我需要...
-
两个节点上的所有数据的总复制。
最终一致的写入。因此,被写入的节点将立即响应前端的确认。复制时未同步
谁能告诉我这可能吗?它是在 YAML 文件中完成的吗?我知道那里有保持一致性的属性,但我没有看到任何分区器适合我的需要。我在哪里可以设置复制因子?
谢谢
【问题讨论】:
【参考方案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
感谢您非常清楚的回答。我试试这个。以上是关于Cassandra 集群与每个节点完全复制的主要内容,如果未能解决你的问题,请参考以下文章
开源Nosql数据库Cassandra3.0实战-集群部署与插件使用
当表在集群中的多个节点之间复制时,COPY 如何在 cassandra 中工作?