【发布时间】:2021-08-18 21:39:43
【问题描述】:
我遇到了一个我不确定为什么会发生的问题。
我有一个 Cassandra 集群,只有 1 个数据中心,5 个副本,3 个作为复制因子,并且在测试时我的应用和 cqlsh 中的 ONE 保持一致。
我正在使用 cqlsh 运行类似于以下内容的查询:
SELECT * FROM session where id='xxxxxxxxxxxxxxx' and device_id='xxxxxxxxxxxxxxxx';
我随机填充了我的数据行,而其他时候响应为空。
首先我检查了集群的状态,那里一切正常。所有处于“UN”状态的节点,每个节点大约 60% 的所有权,每个节点 256 个令牌。
然后我像这样运行 getendpoints 命令:
nodetool getendpoints <keyspace> <table> "xxxxxxxxxxxxxxx"
我看到 3 个节点持有这个 ID,看起来不错。
然后我在每个节点上运行修复,问题就消失了,但我仍然看不出这里有什么问题。
信息在数据库中保存了很长一段时间,而不是几分钟或几天。
我想问题仍然存在,但它可能是什么以及如何轻松调试或监控?
感谢您的帮助
【问题讨论】: