微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Cassandra 并不总是为单个数据中心中的同一查询返回预期数据,设置了 5 个副本

如何解决Cassandra 并不总是为单个数据中心中的同一查询返回预期数据,设置了 5 个副本

我遇到了一个问题,但我不确定它为什么会发生。

我有一个 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,看起来不错。

然后我在每个节点中运行修复,问题消失了,但我仍然看不出这里有什么问题。

信息在数据库中存在很长时间,而不是几分钟、几天。

我想问题仍然存在,但它可能是什么以及如何轻松调试或监控?

感谢您的帮助

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。