我们最近开始在服务器上发现“在一致性LocalQuorum上进行读取查询时,Cassandra超时(1个副本在2个以上的副本中需要响应)”错误,并尝试解决此问题,但目前不确定它们的来源。
我们有以下设置:
read_request_timeout_in_ms
在每个节点上设置为5000 查询本身或从中检索数据的表在正常运行和现在显示这些错误之间进行了更改。我们注意到的是,节点间歇地失去与一个或两个其他节点的连接。我们运行了一个监视工具,该监视工具每隔几分钟就会运行一次节点工具状态,从中我们可以看到它们不经常显示集群中其他节点的状态DN,但是一段时间后它始终会自行解决。此外,我们在所有节点之间运行了自动ping操作,观察到的最大延迟在高峰时间约为0.8ms。
根据我们的Cassandra服务器主机,数据中心内没有任何内部网络问题,也没有异常的软件包丢失量。所有计算机也都具有大量可用资源,CPU负载相对较低,磁盘使用率和内存都徘徊在20%左右,而交换则在10%左右。
我们执行了完整的顺序修复任务,并将Cassandra查询的一致性级别从LocalQuorum更改为One,这暂时稳定了该问题,但当然不能解决根本问题。
有人曾经历过类似的问题吗?我本人对此并不陌生,所以请询问是否需要更多信息。