正在使用Express Cassandra获取apollo.model.保存.dberror

l0oc07j2  于 2022-11-05  发布在  Cassandra
关注(0)|答案(1)|浏览(77)

我目前使用的是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);
    });
};
ccrfmcuu

ccrfmcuu1#

Node.js驱动程序在尝试了所有主机但没有一个可用后返回NoHostAvailableError
OperationTimedOutError表示驱动程序尝试联系某个节点,但从未得到回复。这是与读写超时不同的错误,后者是协调器节点返回的响应。
OperationTimedOutError表示节点没有响应,通常是因为它们过载了。您需要查看日志,如果您看到大量的GC活动和/或大量丢弃的突变/读取/消息,则节点无法跟上负载,您需要考虑通过添加更多节点来增加集群的容量。干杯!

相关问题