【问题标题】:I am getting connection reset error when trying execute two queries at the same time in arangodb?尝试在 arangodb 中同时执行两个查询时出现连接重置错误?
【发布时间】:2020-09-28 11:14:25
【问题描述】:

我正在使用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 关于连接操作的文档。但我还没有找到任何相关信息。

任何帮助将不胜感激。

【问题讨论】:

    标签: node.js arangodb connection-reset arangojs


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-16
      • 2015-06-27
      • 2020-11-06
      • 2020-10-29
      • 1970-01-01
      相关资源
      最近更新 更多