【发布时间】:2016-01-20 19:51:07
【问题描述】:
我有一个基于 Express 构建的 Node 应用,它使用网络爬虫来加载和解析数据。
我已经阅读了很多关于 NodeJS 的可扩展性和能够处理大量并发连接的文章,但是当您运行网络爬虫(发送 1000 多个并发请求)时,我觉得事情开始有点崩溃了。
在运行时,我的服务器对其他 API 请求没有响应,并且同时运行多个实例会导致事情慢如蜗牛。
我找不到任何关于限制是什么、应该是什么、我应该汇集多少个请求等等的文档。
我是否应该将抓取工具的请求限制为每秒 10 个?每秒 100 个?每秒1000?或者我是否可以增加分配给我的 VPS 上的节点进程的 CPU/内存量?
编辑:对于那些因为这个问题过于基于意见而投票结束的人,这就是我要问的具体内容:
- Express 应用程序可以同时执行多少个 HTTP 请求,然后才会开始发挥性能
- 增加应用程序可用的内存/cpu 是否有任何帮助?
【问题讨论】:
-
当我们说 NodeJS 可以处理 1000 多个并发请求时,它们本质上是非阻塞请求,即不是非常占用 CPU 的任务。如果网络爬虫是 CPU 密集型任务,最好在这些服务器上使用负载均衡器的节点服务器集群。
-
@AmanGupta 太棒了,这些是我以前从未听说过的术语。您能否推荐一些资源来了解有关负载平衡和集群工作的更多信息?
-
你可以从这个开始:sitepoint.com/…
标签: javascript node.js express web-scraping vps