将收到的实时Feed数据推送给10,000个用户?

时间:2011-05-09 22:15:35

标签: architecture concurrency node.js server-side low-latency

我正在为我正在开发的新项目提供一些指导,这需要低延迟和高并发性。该项目涉及从第三方订阅源接收实时数据,并在进行一些基本处理和存储后,将这些值发送给网站上当前活动的所有用户。

数据通过HTTP Push到达,我当前的计划是使用Node.js接收这些数据,然后在更新某种数据库中的相关数据之前通过算法运行数据。最后,通过websocket将更新发送给网站的所有连接用户。

现在,我正在努力让这种可扩展性能够同时处理超过10,000个连接用户,所有用户都通过websocket连接,并且大约每3秒发送一次更新。鉴于每个用户可以在此期间与Web应用程序进行交互,这将导致许多来回请求。

现在,除了我所拥有的高级基本思想之外,决定让Ruby on Rails作为网站框架和节点js来处理它的“活力” - 我有点卡住了。我不知道使用什么样的数据库(我想它将是一个快速存储的非关系数据库),我不知道如何构建这样的设置的具体细节,以及如何实现逻辑

所以我的问题是:鉴于我的目标,我如何构建这样一个应用程序,以及我需要知道什么才能使其可扩展和实时达到我想要的水平?

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

我建议您查看几个库。

  • now远程RPC变得微不足道。
  • cradle couchdb数据库抽象,用于持久存储。
  • 用于跨机器通信的
  • 'node_redis' redis数据库抽象
  • cluster将您的计划扩展到多个流程。