使用node.js缩放web刮取网站
问题描述:
我正在开发一个网页抓取网站以查找可用的递送餐馆。网站搜索最流行的传递门户网站,并将结果显示在一个页面中。使用node.js缩放web刮取网站
该网站托管在Heroku与4 dynos。
http://deliveria.net/#05409-002
当用户在网站上的要求,它使大约30 HTTP请求来检索结果。
问题是性能,请求不是很快,每个搜索都可以使其中的30个锁定应用程序,同时为单个用户执行搜索。
我试图增加Heroku的DYNOS:
heroku scale web=10
而且我不觉得可察觉的增益。
扩展这种应用程序的最佳方法是什么?
(我不能使用高速缓存,作为搜索需要在实时)
当前堆栈:
- Heroku的
- Node.js的
- 表达
- 请求模块
- EJS
- 推动器
- Redis的
我之前试过socket.io,但在heroku上工作不太好,现在我正在使用Pusher为用户提供响应。关于工作人员...这可能是一个好主意,我可以创建工作人员来网上抓取并维护主要的测试版,仅供网站使用。韩国社交协会。 – 2011-12-22 01:18:09
是的,这是最重要的。如果你只是产生主应用程序,你不会感觉到有所改进。为此产卵的工作人员将确保更好的性能,并且不会阻止您的主应用程序。 – alessioalex 2011-12-22 06:32:37
如何在Heroku上ping(ajax调用)工作人员?我可以在工作人员中运行快递服务器吗?它是否可见? 我正在使用推动器。现在,当用户提交搜索请求时,浏览器ping(发出ajax调用)以表示应用程序开始将消息发送到频道/事件(私人聊天室)。用户浏览器正在监听相同的频道/事件。 我需要将此“ping”重定向到工作人员,它是否可行? – 2011-12-22 11:32:21