根据位置存储数据,对 MongoDB 进行国际分片

根据位置存储数据,对 MongoDB 进行国际分片

我们希望在全球范围内建立数据中心,并切换到像 MongoDB 这样的 NoSQL 数据库,以支持将我们的数据分布在这些数据中心(并且作为一个令人愉快的副作用,引入更多的冗余、故障转移等)。

然而,设立全球数据中心的主要目的是为了加快附近国家/地区的用户的响应速度,而不是为了实现故障转移功能。Web 应用程序旨在供公司使用,而这些公司中很少有公司是在全球范围内运营的。因此,由于世界一端的许多用户永远不需要访问另一端用户的数据,因此如果数据可以保存在大多数用户本地的服务器上,那就太好了。

我曾希望能够使用 mongodb 的分片功能将数据像这样分布到全球,同时仍允许从单个位置进行访问和维护(这会很慢,并且会查询国际服务器)。不幸的是,我能找到的关于这种行为的唯一参考资料是在 MongoDB 博客上提到的“智能归位”,仅此而已。虽然可以在全球范围内同步所有内容,但这似乎效率很低,而且至少在其中一个国家/地区无法使用不限流量的带宽。

mongodb 能支持这种行为吗?如果能提供任何关于如何使这种设置工作的信息(或者为什么我不应该使这种设置工作,因为它会导致小猫死亡等),我将不胜感激。

答案1

MongoDB 已经实现了其中的一些功能,请参阅此处的精彩介绍:

http://www.mongodb.org/display/DOCS/Data+Center+Awareness

在读取路由方面,驱动程序中有一些实现,但不是内置的。本地数据读取的功能完整版本计划与 2.2 一起发布

如果您想了解两个最密切相关的核心服务器问题,您可以在这里查看:

https://jira.mongodb.org/browse/SERVER-3062 https://jira.mongodb.org/browse/SERVER-3358

当然,你还可以对该功能进行投票,使其在列表中排名上升 :)

相关内容