操作超时 - 仅收到0条回复。', info:'表示来自服务器的错误消息', 代码:4608, 一致性:1, 收到:0, blockFor:1, isDataPresent:0, ...
我每天都会多次尝试在我的cassandra集群上执行SELECT查询。我们在m1.large aws实例上有一个3节点集群。他们大部分时间都取得了成功,但每隔一段时间我们就会遇到上述错误。我们还没有投入生产,所以所有的桌子都很小。我们没有几千行的任何表,并且相同的查询在其他时间完成。提高超时时间不是一种选择,我不相信它会解决问题(查询应该很短,错误中的查询每次都不一样)
这可能是某些连接在节点或网络问题之间过时了吗?测试这些的最佳方法是什么?我也只在我的客户端看到这个错误,在cassandra日志中我应该看到这个吗?
答案 0 :(得分:2)
这实际上是一个从负责处理您的请求的C *服务器返回的错误(又称'协调员')。
看起来你正在查询一致性等级的“一个人”。因此,只有1个保存数据的副本需要响应服务器上cassandra.yaml文件中配置的read_request_timeout_in_ms
内的协调器(默认为5秒),但在该时间段内没有响应副本。
超时可能发生,您的应用程序应该根据您的偏好准备处理它们(要么完全失败,要么重试,增加复制因子以降低其可能性等等)
以下是您应该考虑的一些事项:
received
> blockFor
(在您的情况下,它不是')。read_request_timeout_in_ms
。我会劝阻这一点,除非你的配置/环境/查询不好,否则5000毫秒应该绰绰有余。