尝试在arangodb中同时执行两个查询时出现连接重置错误?

时间:2020-09-28 11:14:25

标签: node.js arangodb connection-reset arangojs

我正在使用arangojs v6.14.1arangodb version 3.6.4.。我也有nodejs Express应用,该应用旨在满足客户要求。

在执行并发请求时遇到问题。当我同时处理客户端请求时,数据库连接挂断:

应用收到请求后会做什么?

打开数据库连接-

db = new Database(dbConfig.url); 
db.useDatabase(dbConfig.name); 
db.useBasicAuth(dbConfig.username, dbConfig.password);

执行多种功能和可访问性检查需要访问多个中间件功能。对于我尝试的每个中间件

  • 打开新的数据库连接->
  • 执行操作->
  • 关闭连接->
  • 将结果返回到下一个中​​间件。

这一次可以处理单个请求。但是,如果我尝试同时调用两个API,则会收到CONNECTIONRESET错误。并且还会引发套接字挂起错误。

我试图推荐这种紧密连接的方法,它在一段时间内开始正常工作。但是当我增加连接数时,它再次显示与“ CONNECTIONRESET”相同的错误。

我搜索了arangojs的有关连接操作的文档。但是我还没有找到关于它的任何信息。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

这对您来说可能为时已晚,但我遇到了类似的问题。与 ArangoDB 支持人员交谈后,结果证明是套接字的问题。

查看 netstat -aplnt 的输出,我看到很多 CLOSE_WAITTIME_WAIT 消息,表明有很多连接没有正确关闭。

解决方案是启用持久连接(请参阅 arangojs config 以了解 keep-alive 和 maxSockets),然后尽可能重用单个连接。这不仅仅是设置更改,还需要一些代码修改。