【问题标题】:How many concurrent http request should I send? [closed]我应该发送多少并发 http 请求? [关闭]
【发布时间】:2016-07-19 10:09:44
【问题描述】:

我需要同时向远程服务器发送大约 50 或 60 个获取请求。

我对网络了解不多。

我刚刚意识到,例如:

发送 5 个请求 10 次与同时发送 50 个请求完全不同......

我如何知道要同时发送的并发 HTTP 请求的最“有效”数量是多少?

【问题讨论】:

  • 很难说什么是“高效”。效率意味着在结果与努力方面有好处。此外,在您的情况下,您能否解释请求是重的(例如影响数据库)还是轻量的(例如,返回一个小的静态文件)?您可以选择在一个 HTTP 请求中发送多个请求吗?这会稍微提高效率,但 HTTP GETS 已经非常高效了。
  • 看看有没有帮助....stackoverflow.com/questions/35301274/…
  • 你可以同时向一个服务器发送多个请求!

标签: node.js http asynchronous network-programming


【解决方案1】:

当只讨论网络而不是后端和繁重的请求处理时:许多请求的一个很大影响是连接重用。谈论HTTP/1.* 这是Keep-Alive 的功能。 默认情况下支持HTTP/2 multiplexing,不仅允许重复使用,还允许请求同时使用

因此,在 NodeJS 中进行 100 个并行请求会导致打开 100 个连接,而 require('http').globalAgent.maxSockets 默认设置为 Infinity。但是当你一个接一个地发出N请求时,这意味着进一步的请求可以重用以前的连接。

但你不应该自己处理连接池,只需将maxSockets设置为15,nodejs代理会为你处理。 注意:很难说具体应该是什么值,但在节点版本0.12 之前maxSockets 的默认值也是5

【讨论】:

    猜你喜欢
    • 2012-05-24
    • 2022-07-26
    • 1970-01-01
    • 2011-12-21
    • 2013-03-24
    • 1970-01-01
    • 2017-09-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多