我正在開發一個網頁抓取網站以查找可用的遞送餐館。網站搜索最流行的傳遞門戶網站,並將結果顯示在一個頁面中。使用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