【问题标题】:Building a API spider, how many threads is too many? Requests per second ideas?构建一个API蜘蛛,多少线程太多了?每秒请求的想法?
【发布时间】:2012-11-21 17:41:13
【问题描述】:

我想构建一个基本上从各种 API 中提取数据的服务。

在典型的服务器上,是否也应遵守线程限制?

有没有人有任何构建类似东西的经验,多少线程被认为是理想的,每秒可以预期什么样的请求?

100 个线程太多了吗? 200?

我意识到这是我必须测试的东西,但我正在寻找能够在本质上构建类似东西的人,并且可以从中汲取一些经验。

【问题讨论】:

  • 我们需要更长的时间来回答您的问题,而不是您测试和调整数字。线程数取决于您未指定的各种变量,因此任何答案都是猜测。
  • 完全取决于您所访问的 API 的平均响应时间以及您可能对结果执行的阻塞活动。

标签: java scala


【解决方案1】:

这取决于您的瓶颈和您的要求。您需要多快才能完成操作?线程做IO吗?我知道他们根据您的解释提出了很多网络请求。

所以线程将在网络上等待。那你为什么需要很多线程,也许异步操作会更快。

总的来说,正如 Robert Harvey 评论的那样:与您测试和调整数字相比,我们需要更长的时间来回答您的问题。线程数取决于您未指定的各种变量,因此任何答案都将是猜测

【讨论】:

    【解决方案2】:

    对于您的特定情况,它可能更适合使用异步编程风格。在这种情况下,您可以使用少量线程实现较大的 API 调用吞吐量 - 它甚至可能与可用内核的数量相当。

    有几个可用的库可以实现这一点(Twitter 是这里的王者)。

    还有很多其他的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-03
      • 1970-01-01
      • 2010-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-13
      相关资源
      最近更新 更多