使用基于位置存储的数据在国际上对 MongoDB 进行分片

tza*_*zar 5 scaling mongodb

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

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

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

mongodb 可以支持这种行为吗?关于如何让这种设置工作的任何进一步信息(或者为什么我不应该让这个设置工作,因为它会使小猫死亡等)将不胜感激。

Ada*_*m C 5

其中一些已经与 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

而且,当然,然后您可以对该功能进行投票以将其提升到列表中:)