【发布时间】:2018-10-05 12:24:18
【问题描述】:
假设我有一个写入数据库的分布式应用程序。为了减少延迟,其中一个实例(应用程序 + 数据库)托管在澳大利亚,另一个实例托管在欧洲。两个数据库实例需要共享相同的数据。
所以我们在这里追求的是数据局部性。原因很明显:我们不希望澳大利亚的用户向我们在欧洲的数据库发送请求,因为这会增加延迟。
自然的选择是将两个数据库实例部署在一个副本集中。但似乎使用 MongoDB,您可以在副本集中写入 only one Mongo instance。
MongoDB 有什么策略可以让两个数据库实例共享相同的数据,您可以写入这些数据?或者 MongoDB 只是满足此要求的错误选择?
【问题讨论】:
-
链接正确。副本是为了确保高可用性,并且在某些情况下用于繁重的查询。您的用例属于分片主题:docs.mongodb.com/manual/tutorial/… 实际上,他们从客户端的角度“共享”数据,只是从澳大利亚查询欧洲数据将比对本地分片的请求花费更多时间。
标签: database mongodb deployment database-replication replicaset