Java 构建API spider时,有多少线程太多?每秒请求的想法?

Java 构建API spider时,有多少线程太多?每秒请求的想法?,java,scala,Java,Scala,我想构建一个基本上从各种API中提取数据的服务 在一个典型的服务器上,是否也应该遵守线程限制 有没有人有过构建类似的东西的经验,有多少线程被认为是理想的,以及每秒可以期望什么样的请求 100条线太多了吗?200 我意识到这是我必须要测试的东西,但我想找一个在性质上有相似之处的人,可以在这方面积累一些经验。这取决于你的瓶颈和你的需求。您需要以多快的速度完成操作?这些线程会生成IO吗?根据你的解释,我知道他们提出了很多网络请求 所以线程将在网络上等待。那么为什么需要多个线程呢?也许异步操作会更快 总

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

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

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

100条线太多了吗?200


我意识到这是我必须要测试的东西,但我想找一个在性质上有相似之处的人,可以在这方面积累一些经验。

这取决于你的瓶颈和你的需求。您需要以多快的速度完成操作?这些线程会生成IO吗?根据你的解释,我知道他们提出了很多网络请求

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


总的来说,正如罗伯特·哈维(Robert Harvey)所评论的那样:我们回答你的问题的时间要比你测试和调整数字的时间长。线程的数量取决于您尚未指定的各种变量,因此任何答案都将是猜测

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

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

  • -通用,支持多种传输协议
  • -只为了节俭
  • -面向Java的异步http客户端

还有很多其他问题。

我们回答您的问题的时间要比您测试和调整数字的时间长。线程的数量取决于您没有指定的各种变量,因此任何答案都只是猜测。完全取决于您正在命中的API的平均响应时间以及您可能对结果执行的阻塞活动。