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