我在NodeJS中通过请求承诺查询127.0.0.1:8443并发出10K +请求并且正在点击:
{ RequestError: Error: connect ECONNRESET 127.0.0.1:8443
和/或
{ RequestError: Error: read ECONNRESET
如果我减少请求数量10-100,那就没有错误。
这是我的NodeJS客户端发出无法跟上的请求,还是我正在尝试请求无法跟上的端点?
我可以控制两端,并且没有从我请求的服务器收到任何错误。
答案 0 :(得分:1)
ECONNRESET(由对等方重置连接):强制连接 由同行关闭。这通常是由于连接丢失造成的 因超时或重启而在远程套接字上。常见的 通过http和网络模块。
由于大量请求正在访问服务器,因此它正在超载(忙于为之前的请求提供服务,然后才能处理任何新请求)。
可能的解决方案:
使用server.timeout = 0
检查/修改服务器超时。这是不是
用于生产的推荐解决方案。但是,它可以帮助你
开发/测试
您可以使用增加允许的最大连接数
server.maxConnections
但这也是不推荐的解决方案
生产。但是,它将允许您验证服务器硬件
容量需要升级或网络带宽需要升级。
如果您的服务器位于良好的数据中心,通常是硬件
需要升级的容量(见下两个解决方案)。
如果您使用的是云服务器,请增加核心数量 请求可以更快地提供服务。
通过拥有多个服务器实例来考虑负载共享 (在负载均衡器后面)。