我正在使用mongodb作为游戏服务器的数据库。当我启动它们时,它们仅限于一个区域,我在印度该区域使用了Mongodb Atlas的免费层,即使在高负载下,它也能以大约20ms的延迟完美运行。
现在,当我尝试扩展服务器并到达US-East之类的其他区域时,延迟跳升到500ms。
有一种方法可以在我的印度和美国实例上打开两个mongodb服务器,它们始终彼此完全同步,而游戏服务器进程仅使用localhost连接到特定的副本。我正在使用pyMongo。
玩家与数据库没有连接,管理它的是游戏服务器进程
有没有一种方法可以在我的印度和美国实例上打开两个mongodb服务器,它们将始终彼此完全同步,而游戏服务器进程将仅使用localhost连接到特定的副本。
假设您正在使用副本集,我相信您可以通过以下方式达到规定的要求供阅读:
请注意,这样的设置(至少)具有两个主要缺点:
对读写]达成相同的要求在物理上是不可能的。 (您本质上希望能够在20毫秒之内在印度写一个文档,并在美国“即时”获得该文档,即能够在20毫秒后在美国检索该文档,但是至少要花费500毫秒数据从印度运往美国。)