我想构建一个基本上从各种 API 中提取数据的服务。
在典型的服务器上,是否也应该遵守线程限制?
有没有人有构建类似东西的经验,有多少线程被认为是理想的,每秒可以期待什么样的请求?
100个线程太多了吗?200?
我意识到这是我将不得不测试的东西,但要寻找在本质上构建了类似东西的人,可以在这方面积累一些经验。
这取决于您的瓶颈和您的要求。您需要多快才能完成操作?线程做IO吗?我知道他们根据您的解释提出了很多网络请求。
所以线程将在网络上等待。那你为什么需要很多线程,也许异步操作会更快。
总的来说,正如罗伯特哈维评论的那样:我们需要更长的时间来回答你的问题,而不是你测试它并调整数字。线程数取决于您未指定的各种变量,因此任何答案都将是猜测
对于您的特定情况,它可能更适合使用异步编程风格。在这种情况下,您可以使用少量线程实现大量 API 调用吞吐量 - 它甚至可以与可用内核的数量相媲美。
有几个可用的库可以实现这一点(Twitter 是这里的王者)。
还有很多其他的。