Node.js如何处理未封闭的HTTP响应

达维塔普利

考虑一个简单的快递应用程序:

app.get '/hang', (req, res) ->
  console.log 'Request ', n
  n += 1
  # res.send 200

糟糕,我不小心将注释掉了res.send,哦,让我们看看会发生什么!

如果我/hang用浏览器点击它,它就坐在那儿旋转,这是有道理的。没有,send我们不会关闭连接(正确的假设?)。让我们看看会发生什么,如果我们打/hang了一堆的并发连接

$ ab -n 1000 -c 1000 http://localhost:3000/hang

Benchmarking localhost (be patient)
apr_socket_recv: Connection reset by peer (104)

该应用程序设法打印了几百Request n秒,然后卡住了。

我的问题是:

  1. 这里发生了什么事?
  2. 这些连接最终会关闭吗?或者:
  3. 在重新启动之前,我的服务器现在是否处于连接状态?

额外的:

你可以通过-rab有它忽略套接字错误。当我使用它时,我开始看到ab列出一些已完成的请求:

Completed 100 requests
Completed 200 requests
apr_pollset_poll: The timeout specified has expired (70007)

难道这是由node.js关闭的连接?

彼得·里昂斯

这里发生了什么事?

连接只是闲着无所事事。它们确实需要消耗内存来保持开放,但CPU可以忽略不计。

这些连接最终会关闭吗?

是的,我相信操作系统的网络层最终会因超时错误而将其关闭。客户端或服务器都可以根据配置(特别是Keepalives和超时值)触发此操作。

在重新启动之前,我的服务器现在是否处于连接状态?

不,您可以从一定数量的设备中完全恢复,而无需重新启动。因此,如果在真实服务器中,如果某个错误导致每1000个请求中有1个被挂起而没有响应,则对于给定的流量负载而言,它将是可管理的。基本上,这是每单位流量和流量负载的挂起连接的功能,以确定这是可幸免的错误,还是会逐渐失去控制,直到服务器耗尽资源。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

node.js如何处理同时的http请求?

来自分类Dev

如何处理node.js casterror?

来自分类Dev

Node.js-如何处理流错误事件

来自分类Dev

如何处理node.js中的循环?

来自分类Dev

Node.js /如何处理连接泄漏?

来自分类Dev

Node.JS如何处理重复的传递依赖项?

来自分类Dev

如何处理来自node.js的网页上的数据

来自分类Dev

如何处理Node.JS中的UnhandledPromiseRejectionWarning

来自分类Dev

Node.js服务器如何处理请求?

来自分类Dev

如何处理来自node.js的网页上的数据

来自分类Dev

Alexa Node JS 如何处理多个事件的取消事件

来自分类Dev

如何处理 node.js 请求中的 URI 错误?

来自分类Dev

在node.js中初始化|| 如何处理node.js中的初始配置

来自分类Dev

如何在node.js中结束HTTP响应主体

来自分类Dev

如何修改Node JS响应

来自分类Dev

Node.js中的处理程序响应

来自分类Dev

Node.js中的处理程序响应

来自分类Dev

Node.js HTTP响应流

来自分类Dev

Node.js分析:如何处理v8.log文件

来自分类Dev

如何处理node.js中的所有异常

来自分类Dev

使用node.js测试API如何处理无效的JSON语法请求主体

来自分类Dev

如何处理node.js中的ASP.NET身份记录?

来自分类Dev

如何处理Node.js中的fs.createReadStream()错误?

来自分类Dev

Node.js如何处理一个线程的同时请求?

来自分类Dev

我如何处理node.js中(cli)输出的(cli)stdout流的字符编码?

来自分类Dev

如何处理node.js可写流中的结束信号?

来自分类Dev

在JavaScript(Node.js)中更新MongoDB集合时如何处理错误

来自分类Dev

如何处理Express Node.js中的主体解析器错误

来自分类Dev

如何处理Node.js的REST API的非传统查询

Related 相关文章

热门标签

归档