同步两个Mongodb数据库,并使客户端连接到最近的一个数据库

问题描述 投票:0回答:1

我正在使用mongodb作为游戏服务器的数据库。当我启动它们时,它们仅限于一个区域,我在印度该区域使用了Mongodb Atlas的免费层,即使在高负载下,它也能以大约20ms的延迟完美运行。

现在,当我尝试扩展服务器并到达US-East之类的其他区域时,延迟跳升到500ms。

有一种方法可以在我的印度和美国实例上打开两个mongodb服务器,它们始终彼此完全同步,而游戏服务器进程仅使用localhost连接到特定的副本。我正在使用pyMongo。

玩家与数据库没有连接,管理它的是游戏服务器进程

mongodb pymongo
1个回答
0
投票

有没有一种方法可以在我的印度和美国实例上打开两个mongodb服务器,它们将始终彼此完全同步,而游戏服务器进程将仅使用localhost连接到特定的副本。

假设您正在使用副本集,我相信您可以通过以下方式达到规定的要求供阅读

  1. 如果您有两台服务器,则使用w = 2。[执行所有写入操作时w =(部署中的节点数)的所有写入。
  2. 以阅读优先级=最近和阅读关注度=多数进行阅读。

请注意,这样的设置(至少)具有两个主要缺点:

  1. 如果任何服务器不可用,您的应用程序将无法将任何数据写入数据库。
  2. 每次写入将等待部署中的所有服务器将其存储,因此所有写入将很慢。

读写]达成相同的要求在物理上是不可能的。 (您本质上希望能够在20毫秒之内在印度写一个文档,并在美国“即时”获得该文档,即能够在20毫秒后在美国检索该文档,但是至少要花费500毫秒数据从印度运往美国。)

© www.soinside.com 2019 - 2024. All rights reserved.