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

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

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

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

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

所以我的问题是: 为了实现我的目标,我该如何构build这样一个应用程序,以及为了使其具有可伸缩性和实时性,我需要了解哪些内容?

非常感谢您的帮助。

我会推荐几个库来看看。

  • now远程RPC做了微不足道。
  • cradle couchdb数据库抽象为持久存储。
  • 用于跨机器通信的'node_redis'redis数据库抽象
  • cluster跨多个进程扩展您的程序。