我想使用node.js构建一个Web解析器。
我知道使用多线程不会自动获得性能优势,但由于此解析器正在与Internet进行交互,因此存在连接延迟。
当解析器请求一个网站时,如果不是更长时间,CPU只需要等待请求完成就需要几百毫秒。 对于单个线程,这意味着它在大多数时间都在等待。
我想使用线程来更好地分配可用的CPU资源。
我想运行几个执行请求的工作程序以及其他一些方法。
我发现群集模块可能很有用,但我不确定这一点,因为大多数示例都将其用作网络服务器。
使用node.js如何最好地实现这一目标?
答案 0 :(得分:1)
您可以使用Async NPM来使用一个核心的所有功能,然后使用某些clustering solution进行缩放以使用所有核心。
答案 1 :(得分:1)
就像@ roman-dibikhin回答一样,检查Async queue模块。
如果您正确构建代码 - 在单核之前,限制将是您的网络带宽\ sql \ disk。
我刚看到一个使用节点进行网址报废的项目。限制只是互联网带宽。
当然,如果你想要,你总是可以发射另一个实例。