gpt4 book ai didi

python - 当 RF = 2 时 Cassandra 在所有节点上复制数据

转载 作者:太空宇宙 更新时间:2023-11-03 17:46:36 26 4
gpt4 key购买 nike

我已经设置了一个总共有 4 个节点的 Cassandra 集群,其中 2 个节点是种子节点,另外 2 个节点是普通节点。我已将复制因子设置为 2。

这是我的 cassandra.yaml。除了以下值之外,每个设置都保持相同的默认值。

rpc_address: 0.0.0.0
endpoint_snitch: GossipingPropertyFileSnitch

我使用上述配置在所有4个节点上安装了cassandra(当然有不同的listen_address)

接下来,我在所有 4 个节点上运行 sync_tables.py 文件。

以下是sync_tables.py文件

connection.setup(CLUSTER_NODES_LIST, "mad")

create_keyspace_simple("mad", replication_factor=2)
models_list = []
sync = True
if sync:
for model in models_list:
sync_table(model)

它创建了“疯狂”的 KEYSPACE 和 N 个列族。

现在,当我触发查询以在 seed1 上插入数据时,它会在所有 4 个节点上复制数据。 这是为什么?我将 RF 设置为 2,然后它也会在所有 4 个节点上复制。

当我执行DESCRIBE KEYSPACE mad;时,结果如下:-

CREATE KEYSPACE mad WITH replication = {
'class': 'SimpleStrategy',
'replication_factor': '2'
};

它清楚地表明 RF 已设置为 2。这是正常行为吗? 为什么即使 RF 设置为 2,它也会在所有 4 个节点上复制。

最佳答案

数据仅复制到两个节点,但您可以从集群中的任何节点读取/写入。请参阅here有关请求协调的更多信息。

要检查集群中哪些节点有副本,可以使用nodetool:

nodetool getendpoints <keyspace> <table> <key value>

关于python - 当 RF = 2 时 Cassandra 在所有节点上复制数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29700149/

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