Architecture 将收到的实时提要数据推送到10000个用户?

Architecture 将收到的实时提要数据推送到10000个用户?,architecture,concurrency,node.js,server-side,low-latency,Architecture,Concurrency,Node.js,Server Side,Low Latency,我正在寻找一个需要低延迟和高并发性的新项目的指导。该项目包括从第三方feed接收实时数据,经过一些基本的处理和存储后,将这些值发送给网站上当前活跃的所有用户 数据通过HTTP推送到达,我当前的计划是使用Node.js接收数据,然后通过算法运行数据,然后更新某种数据库中的相关数据。最后,更新通过websocket发送给网站的所有连接用户 现在,我正在尝试让这个可扩展的系统一次处理超过10000个连接的用户,所有用户都通过websocket连接,并且大约每3秒钟发送一次更新。考虑到每个用户都可以在此

我正在寻找一个需要低延迟和高并发性的新项目的指导。该项目包括从第三方feed接收实时数据,经过一些基本的处理和存储后,将这些值发送给网站上当前活跃的所有用户

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

现在,我正在尝试让这个可扩展的系统一次处理超过10000个连接的用户,所有用户都通过websocket连接,并且大约每3秒钟发送一次更新。考虑到每个用户都可以在此期间与web应用程序进行交互,这将导致许多来回的请求

现在,除了我的高层次基本想法之外,我决定使用RubyonRails作为网站框架,使用NodeJS来处理所有的“活力”——我有点被卡住了。我不知道该使用哪种数据库(我想它将是一个用于快速存储的非关系型数据库),也不知道如何构建这样的设置以及如何实现逻辑的细节

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


非常感谢您的帮助。

我想推荐几个图书馆看看

  • 远程RPC变得微不足道
  • 用于持久存储的couchdb数据库抽象
  • 用于跨机器通信的redis数据库抽象
  • 跨多个进程扩展您的程序

感谢您的回复,这里有很多链接。@ChasingPavements我可以推荐一些具体的结构,但您的建议总体上有点模糊。