首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实时ajax的MongoDB?

问实时ajax的MongoDB?
EN

Stack Overflow用户
提问于 2010-09-27 00:31:03
回答 2查看 1.7K关注 0票数 2

如何堆叠溢出的人!

所以我已经做了一些关于这些NoSQL数据库,MongoDB,CouchDB等的挖掘。虽然我仍然不确定实时的东西,所以我想我应该四处打听一下是否有人有任何实际经验。

让我们考虑一下web的东西,假设我们有一个非常动态的超级ajaxified的webapp,它每5-20秒请求各种类型的数据,我们的后端是python或php或任何不同于java的东西……在这样的情况下,显然一个MySQL或类似的数据库会承受很大的压力(有很多用户),MongoDB / CouchDB会不会毫不费力地运行它,而不需要创建一些超级复杂的集群/缓存等解决方案?

是的,这基本上就是我的问题,如果你认为不..是的,我知道有几种类型的解决方案,nodeJS/websocket/反重力/虫洞超级技术,但我只对这些NoSQL的自动取款机感兴趣,更具体地说,如果它们能处理这种事情。

假设我们同时有5000个用户,每隔5秒、10秒或20秒更新各种界面的ajax请求。

拍摄;]

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-09-27 12:14:37

假设我们同时有5000个用户,每隔5秒、10秒或20秒

请求更新各种界面。

好的,那么为了得到正确的结果,你说的是每秒250到1000次写入?是的MongoDB能处理好的。

性能的真正关键在于这些是查询、更新还是插入。

对于查询,Mongo可能可以处理这种负载。这实际上是关于数据大小与内存大小的比率。如果您的服务器有1 DB的RAM和150 DB的数据,那么您可能不会获得每秒250个查询(使用任何DB技术)。但是通过合理的硬件规格,Mongo可以在一台64位服务器上达到这样的速度。

如果你有5000个活跃用户,并且经常更新现有记录,那么Mongo将会非常快(与在一台机器上更新memcached的速度相当)。这里的原因很简单,因为Mongo可能会将记录保存在内存中。因此,用户将每5秒发送一次更新,内存中的对象将被更新。

如果您经常插入新记录,那么真正的限制将是吞吐量。当您写入大量新数据时,也会强制索引扩展。因此,如果您计划注入大量新数据,则可能会导致磁盘吞吐量饱和,因此需要进行分片。

因此,根据您的问题,看起来您主要是在查询/更新。您将写入新记录,但不是每秒1000个新记录。如果是这样,那么MongoDB可能适合您。它肯定会绕过很多缓存问题。

票数 2
EN

Stack Overflow用户

发布于 2010-09-27 02:24:38

这在很大程度上取决于运行NoSQL解决方案的服务器、数据量等。我使用过一些Mongo,设置多个服务器同时运行非常容易,您很可能通过在同一机器上启动多个实例并让它们像集群一样运行来实现高并发性。幸运的是,Mongo至少处理了所有的细节,所以服务器可以被杀死并引入,而不会跳过一个节拍(取决于版本)。默认情况下,我认为最大连接数是1000,因此使用上述配置启动5台服务器就足够了(如果您的服务器明显可以处理它),但实际上,您很可能永远不会同时达到5000个用户。

为了您的硬件,我希望您至少能想出一个解决方案,可以在全面获取之前检查是否有新数据可用。通过时间戳或Memcache等。

总体而言,我倾向于相信NoSQL会比传统数据库快得多,假设你是在获取数据,而不是运行报表等。而且您的数据存储设计足够智能,可以弥补复杂连接的不足。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3798728

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档