gpt4 book ai didi

cassandra - 在 cassandra 中复制

转载 作者:行者123 更新时间:2023-12-04 22:04:53 25 4
gpt4 key购买 nike

Cassandra 中的复制是如何工作的?如果我有 3 个机架和 3 个带有 NetworkTopologyStratagy 的 RF,那么数据是否会复制到所有 3 个机架?

跨集群复制数据的准确方式是什么?我问是因为我们正在设计我们的集群来满足最坏的情况,即 3 个机架中有 2 个出现故障,我们不想丢失数据。

我们只有一个带 3 个机架的数据中心。

如果我使用:

CREATE KEYSPACE "myKeyspaceName"
WITH REPLICATION = {'class' : 'NetworkTopologyStrategy', 'DC1' : 3 }

这会复制到所有三个机架吗?

最佳答案

在 Cassandra 1.0 文档中,他们有一篇文章很好地解释了这一点: About Replication in Cassandra

我假设您有两个(逻辑?)数据中心。假设您在一个 DC 中有两个机架,在另一个 DC 中有最后一个机架,并且在每个 RACK 上有 2 个节点。您将在拓扑文件中定义这些内容,如下所示:

server1IP=DC1:RACK1
server2IP=DC1:RACK1
server3IP=DC2:RACK1
server4IP=DC2:RACK1
server5IP=DC2:RACK2
server6IP=DC2:RACK2

如果您想拥有 3 个数据副本(每个逻辑机架一个),那么您将定义您的 key 空间以使用 NetworkTopologyStrategy,以及每个 DC 的复制设置,如下所示:
CREATE KEYSPACE "myKeyspaceName"
WITH REPLICATION = {'class' : 'NetworkTopologyStrategy', 'DC1' : 1, 'DC2' : 2};

PropertyFile snitch 也是“机架感知”,因此当发生写入时,它将确保数据的一个副本位于 RACK1 中的 DC1 中的节点上,并且一个副本位于 RACK 中的每个 DC2 上。根据您所说的,拥有三个逻辑数据中心可能是有意义的,每个数据中心都有一个机架。

您还应该查看 this doc in the "Choosing Keyspace Replication Options" section,它进一步解释了如何配置复制。

编辑:

If I use the CREATE KEYSPACE "myKeyspaceName" WITH REPLICATION = {'class' : 'NetworkTopologyStrategy', replicationfactor: 3 }. Will this replicate to all the three racks?



我不确定。但是我发现的每个关于使用 NetworkTopologyStrategy 定义 key 空间复制策略的示例只有一个 DC,特别是命名 DC 而不是声明“replicationfactor”。甚至我链接的文档也指出:

NetworkTopologyStrategy takes as options the number of replicas you want per data center. Even for single data center (or single node) clusters, you can use this replica placement strategy and just define the number of replicas for one data center.



因此,假设您将 DC 命名为 DC1 ,它将如下所示:
CREATE KEYSPACE "myKeyspaceName"
WITH REPLICATION = {'class' : 'NetworkTopologyStrategy', 'DC1' : 3}

如果您这样做,并在该 DC 下定义了三个机架,这会将一个副本复制到所有三个机架。

关于cassandra - 在 cassandra 中复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23294298/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com