我正在使用arangojs v6.14.1
和arangodb 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
的有关连接操作的文档。但是我还没有找到关于它的任何信息。
任何帮助将不胜感激。
答案 0 :(得分:0)
这对您来说可能为时已晚,但我遇到了类似的问题。与 ArangoDB 支持人员交谈后,结果证明是套接字的问题。
查看 netstat -aplnt
的输出,我看到很多 CLOSE_WAIT
和 TIME_WAIT
消息,表明有很多连接没有正确关闭。
解决方案是启用持久连接(请参阅 arangojs config 以了解 keep-alive 和 maxSockets),然后尽可能重用单个连接。这不仅仅是设置更改,还需要一些代码修改。