2011-05-09 25 views
1

我對我正在開發的一個新項目提出了一些指導,要求低延遲和高併發性。該項目涉及從第三方供稿接收實時數據,並在經過一些基本處理和存儲之後,將這些值發送給當前在網站上活動的所有用戶。將收到的實時動態數據推送給10,000個用戶?

數據通過HTTP Push到達,我目前的計劃是使用Node.js接收這些數據,然後在更新某種數據庫中的相關數據之前通過算法運行數據。最後,更新通過websocket發送給網站的所有連接用戶。

現在,我試圖讓這種可擴展性能夠同時處理超過10,000個連接的用戶,所有連接都通過websocket並每3秒發送一次更新。鑑於每個用戶都可以在此期間與Web應用程序進行交互,它會導致許多請求來回。

現在,除了我所擁有的高級基本概念,決定將Ruby on Rails作爲網站框架和節點j來處理它的「活性」 - 我有點卡住了。我不知道要使用什麼樣的數據庫(我想它會成爲一個非關係數據庫用於快速存儲),我不知道如何構建這樣一個設置的具體細節,以及如何實現邏輯。

所以我的問題是:鑑於我的目標,我該如何去構建這樣的應用程序,以及爲了使其具有可伸縮性和實時性,我需要知道什麼?

非常感謝您的幫助。

回答

3

我會推薦幾個庫來看看。

  • now遠程RPC變得微不足道。
  • cradle couchdb數據庫抽象用於持久性存儲。
  • 'node_redis' redis針對跨機器通信的數據庫抽象
  • cluster跨多個進程擴展您的程序。
+0

感謝您的迴應,那裏有很多的鏈接。 – ChasingPavements 2011-05-10 08:00:38

+0

@ChasingPavements我可以推薦一些特定的結構,但總的來說你有點模糊。 – Raynos 2011-05-10 08:37:52