单个关系数据库无法满足高流量应用程序的需求?结果用一个MongoDB就搞定了……

Posted 萌阔论坛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单个关系数据库无法满足高流量应用程序的需求?结果用一个MongoDB就搞定了……相关的知识,希望对你有一定的参考价值。

你知道吗? Foursquare是一个基于位置的社交网络,允许用户通过手机“入场”获取积分和奖励。  公司自2009年成立以来迅速发展,需要以有限的工程资源有效地扩大应用范围。  随着数据的增长,foursquare作出战略决策,将场馆和签到的存储从原始关系架构迁移到MongoDB。

 

问题

    最初的foursquare应用程序依赖于单个关系数据库。  使用这种关系架构,foursquare不能简单且轻松地扩展到高流量应用程序所需的许多节点。  随着公司的快速增长,它将数据分为两个节点:一个用于签入(最大数据集),另一个用于其他节点。  然而,很明显,签到手续将超出单一机器可以处理的范围,而且需要长期,可扩展的解决方案来实现foursquare的增长。

 

为什么是MongoDB

    在MongoDB中,foursquare团队发现了一个解决方案,其功能不仅解决了扩展问题。

 

自动分片

    Foursquare将其数据迁移到MongoDB,以利用其内置的自动分片功能。  MongoDB的自动分片分区数据库,使foursquare可以跨许多节点扩展写入。  Foursquare不需要编写自己的分片层,而是可以依靠MongoDB的自动缩放基础架构,这样可以使foursquare随着应用程序的不断发展而逐渐兴起新的节点。 这使得foursquare能够将工程资源集中在构建其应用程序而不是后端。“在应用程序或中间件层中编写我们自己的分片层似乎是很多工作。  大赢家将其外包给MongoDB的人,”foursquare的Harry Heymann说。

 

地理空间索引

    除了自动分片之外,foursquare也受益于MongoDB对地理空间索引的支持,可以方便地查询基于位置的数据。

 

副本集

    MongoDB的副本集通过节点的自动故障转移提供高可用性。 因为foursquare在亚马逊EC2上运行,节点可以随时失败,自动故障转移对foursquare运营团队来说是一个巨大的好处......(更多具体内容请点击下方“阅读原文”)

 

扫描QRcode (二维码)申请加入

MongoDB微信技术讨论群


以上是关于单个关系数据库无法满足高流量应用程序的需求?结果用一个MongoDB就搞定了……的主要内容,如果未能解决你的问题,请参考以下文章

高可用Redis:Redis Cluster

高性能消息中间件 nsq 解析-介绍

马化腾:希望扶持更多线下实体用好小程序 满足用户需求而非刻意控制流量

数据库文章翻译

超级干货 :一文读懂非关系型数据库(NoSQL)

系统设计基础 负载均衡