我们有一个系统给出了一批请求,对外部第三方API进行了相同数量的调用。鉴于这是一个I / O绑定任务,我们目前使用大小为20的缓存线程池来为这些请求提供服务。除此之外,解决方案是:
使用更少内核更多的计算机(更少上下文切换,能够支持更多并发线程)
或
利用商品/廉价硬件(披萨盒)使用更多机器
我们每天收到的请求数量是数百万。
我们使用的是Java,因此这里的线程是内核,而不是“绿色”。
其他要点/想法:
答案 0 :(得分:1)
对我来说,根本不需要更多资源(大型机器或更多机器)并不明显。如果您在一天内谈论最多1000万个请求,每个请求最多2秒,这意味着:
您能否提供一些有关您认为必须做出此选择的原因的更多信息?
答案 1 :(得分:0)
使用node.js而不是使用大量线程,你可能会更好地使用事件驱动的I / O,但需要注意的是它可能意味着大量的重写以及node.js相当年轻的事实。
此SO article可能会引起关注。