Cassandra - 数据未跨所有节点复制

Cassandra - Data not replicating across all nodes

我是 运行 跨所有三个节点的查询。其中一个查询结果显示十行,而同一查询在另外两个上显示两行。

复制因子设置为3:

keyspace_name      | durable_writes | replication
--------------------+----------------+-------------------------------------------------------------------------------------

table name |           True | {'class': 'org.apache.cassandra.locator.SimpleStrategy', 'replication_factor': '3'}

Nodetool 网络统计:

nodetool netstats
Mode: NORMAL
Not sending any streams.
Read Repair Statistics:
Attempted: 16519
Mismatch (Blocking): 0
Mismatch (Background): 0
Pool Name                    Active   Pending      Completed   Dropped
Large messages                  n/a         1             13         4
Small messages                  n/a         0         320422         4
Gossip messages                 n/a         0       12972040       470

Nodetool 修复已 运行 遍及所有节点。

根据您的评论,可以使用 QUORUM 或更高的一致性级别来避免此问题。需要考虑的一件事是,提高一致性可能会对性能和弹性产生影响。例如,使用 ALL 的一致性级别将确保始终拥有准确的数据,但如果集群的其中一个实例出现问题,则查询将失败,因为无法满足一致性级别。最佳一致性级别将取决于您的用例和 SLA。

您多久对集群执行一次修复 (nodetool repair)?修复将解决从每个节点检索到的不同数据的根本原因。