【发布时间】:2020-01-20 19:03:19
【问题描述】:
我有一个由两个 cassandra 节点组成的开发 cassandra 集群 [我们称它们为 NodeA 和 NodeB]。我还有一个在 NodeA 上不断发送数据的脚本。我已经使用以下参数创建了数据库:
CREATE KEYSPACE test_database WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '1'} AND durable_writes = true;
现在,由于某种原因,NodeB 在一段时间后停止了。但问题是,一旦 NodeB 停止,正在向 NodeA 发送数据的脚本就会开始出现数据插入错误。
谁能指出一个可能的原因。
更新:两个节点都是种子节点。
【问题讨论】:
-
因为你有1个复制因子,所以cassandra只能将数据写入存储它的节点。
-
如果你有,说复制因子 = 2,cassandra 将在节点 A 上写入,当节点 b 重新启动时,节点 A 将发送节点 B 在宕机时丢失的所有数据。
-
您想了解一些关于 cassandra 中的复制因子、令牌和数据重新分区的说明,还是您理解?
-
我还有疑问。由于复制因子为 1,因此数据仅存储在 NodeA 上。所以,我的疑问是 - 如果 NodeB 停止工作,为什么 NodeA 在尝试写入数据时会出错?它不应该关心NodeB在哪里,对吧? bdw,两个节点都是种子节点。这和这里的情况有关系吗?
-
发布了答案,如果您需要更多详细信息,请在其下方评论
标签: cassandra