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

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

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

任何帮助将不胜感激。

解决方法

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?