高容量MongoDB和Twitter流媒体API、Ruby on Rails、Heroku设置

高容量MongoDB和Twitter流媒体API、Ruby on Rails、Heroku设置,mongodb,twitter,heroku,streaming,Mongodb,Twitter,Heroku,Streaming,我希望重新编写一个应用程序,以更好地处理推文中的峰值。我将转到Heroku和MongoDB(MongoLab或MongoHQ)来获得数据库解决方案 在某些新闻事件中,推特数量可能会飙升至15000/秒。通常,对于每条tweet,我解析tweet并存储各种数据,如用户数据等。我的想法是将原始tweet存储在单独的集合中,并使用单独的流程抓取原始tweet并解析它们。这里的目标是当tweet出现大量峰值时,我的应用程序不会尝试解析所有这些,而是将原始tweet备份到另一个集合中。随着容量的降低,该流

我希望重新编写一个应用程序,以更好地处理推文中的峰值。我将转到Heroku和MongoDB(MongoLab或MongoHQ)来获得数据库解决方案

在某些新闻事件中,推特数量可能会飙升至15000/秒。通常,对于每条tweet,我解析tweet并存储各种数据,如用户数据等。我的想法是将原始tweet存储在单独的集合中,并使用单独的流程抓取原始tweet并解析它们。这里的目标是当tweet出现大量峰值时,我的应用程序不会尝试解析所有这些,而是将原始tweet备份到另一个集合中。随着容量的降低,该流程可以处理一段时间后的积压工作

我的问题有三个方面:

  • MongoDB能否以每秒15000条推文的速度处理插入到集合中的此类卷

  • 关于更好的设置有什么想法:MongoHQ还是MongoLab

  • 对整体设置有何反馈

  • 谢谢

  • 它将处理的写入量取决于很多因素—硬件、索引、每个文档的大小等。最好的选择是在您计划使用的环境中测试它。如果写入负载的需求超过单个mongo服务器的容量,则始终可以仅使用多个碎片

  • 它们非常相似,但在定价上存在一些差异,而实际的网站设计也存在一些差异。这里有一个关于它的讨论线索:

  • 总的来说,这似乎是有道理的。听起来您可能想充实一些关于如何处理积压工作的细节。您是否会通过定期查询、在待办事项列表中删除推文等方式对其进行轮询


  • 完全同意需要对此进行测试。一般来说,mongo可以处理这么多的写操作,但实际上这取决于设置的大小、其他操作、索引等

    我不得不用类似的方法收集大量的度量数据。我使用一个轻量级事件机进程并行地接受传入的请求,并以简单的格式存储它们,然后另一个进程将接收这些请求并将它们发送到中央服务器。主要目标是确保在中央服务器关闭时不会丢失数据,但它也允许我加入一些限制逻辑,以便数据峰值不会淹没系统


    我很想看看这是如何为您的价格明智,与像linode的副总裁。(我是Heroku的超级粉丝,但对于某些体系结构,它很快就会变得昂贵)

    这篇文章有点晚了,但a解释了如何使用RabbitMQ使用log now,process later方法。