我目前使用的是Cassandra 3.11,具有3个节点集群和一致性,沿着NodeJSexpress cassandra client 2.3.0。我正在使用saveAsync
方法存储模型数据。但是我收到一个错误:apollo.model.save.dberror
个
Error during save query on DB -> NoHostAvailableError: All host(s) tried for query failed. \
First host tried, <ip>:<port>: OperationTimedOutError: The host <ip>:<port> \
did not reply before timeout 12000 ms.
我无法验证导致这个错误的原因。大多数记录都是这样,只有少数记录通过了。我插入了从Kafka主题中阅读的数据,并在几次验证后将其推送到cassandra。数据速率大约是每秒200。
尝试在堆栈溢出中进行谷歌搜索,但无法获得任何相关细节。示例代码。
SomeData.insert = function (data) {
data = transformData(data); // Basically cleans & normalizes the data to suit the model
let any_data = new ExpressCassandra.instance.data_store(data);
return any_data.saveAsync()
.catch(function(err){
return Promise.reject(err);
});
};
1条答案
按热度按时间ccrfmcuu1#
Node.js驱动程序在尝试了所有主机但没有一个可用后返回
NoHostAvailableError
。OperationTimedOutError
表示驱动程序尝试联系某个节点,但从未得到回复。这是与读写超时不同的错误,后者是协调器节点返回的响应。OperationTimedOutError
表示节点没有响应,通常是因为它们过载了。您需要查看日志,如果您看到大量的GC活动和/或大量丢弃的突变/读取/消息,则节点无法跟上负载,您需要考虑通过添加更多节点来增加集群的容量。干杯!