不同 Cassandra 节点中相同查询的不同结果

Posted

技术标签:

【中文标题】不同 Cassandra 节点中相同查询的不同结果【英文标题】:Different results for same query in different Cassandra nodes 【发布时间】:2018-06-19 05:37:57 【问题描述】:

我有 3 个 cassandra 节点,当我执行 query 时,2 个节点给出相同的响应,但 1 个节点给出不同的响应

假设我执行了query

select * from employee;

Node1 和 Node2 提供2 rows,但 Node3 提供0 rows(empty response)

如何解决这个问题

【问题讨论】:

您能解释一下您是如何进行节点查询的吗? 我的 3 个节点安装在 3 个亚马逊实例中,我连接到这些实例,然后连接到 Cassandra,然后进行查询 每次连接到一个实例?并执行查询? 我有一个 java 应用程序,它已经与这些节点连接,它持续运行......我在 java 中遇到了一些问题,所以我对其进行了故障排除。在进行故障排除时,我连接到了 cassandra 节点我意识到问题出在 cassandra 节点上,它们对不同的 ndo 给出了不同的响应 您能解释一下您的配置、复制因子和一致性吗?你确定集群中连接了3个节点吗? 【参考方案1】:

1.您没有使用网络拓扑。 2.你的复制因子是2。

简单策略:仅用于单个数据中心和一个机架。 SimpleStrategy 将第一个副本放置在分区器确定的节点上。不考虑拓扑(机架或数据中心位置),额外的副本被放置在环中顺时针方向的下一个节点上。

转到此链接: https://docs.datastax.com/en/cassandra/3.0/cassandra/architecture/archDataDistributeReplication.html

【讨论】:

【参考方案2】:

我做了以下步骤,然后问题解决了,现在所有 3 个节点的数据都同步了

在实例上运行命令nodetool rebuild

'replication_factor': '2' 更新为'replication_factor': '3'

【讨论】:

以上是关于不同 Cassandra 节点中相同查询的不同结果的主要内容,如果未能解决你的问题,请参考以下文章

Cassandra nodetool 状态在不同节点上不一致,挂起的压缩任务太多

Cassandra 为一个集群显示了两个不同的环

为啥插入和选择查询的结果集不同

将节点添加到现有 Cassandra 集群

Cassandra 多个节点位于同一服务器上的不同数据中心

LINQ/LinqPad:相同的查询不同的结果