代码之家  ›  专栏  ›  技术社区  ›  MGriesbach

mongoDB复制+2台服务器分片合理吗?

  •  9
  • MGriesbach  · 技术社区  · 14 年前

    考虑以下设置:

    有两个物理服务器被设置为常规mongodb复制集(包括仲裁进程,因此自动故障切换将正常工作)。

    现在,据我所知,大多数实际工作将在主服务器上完成,而从服务器则主要是为了保持其数据集的同步。

    在这个设置中引入分片是否合理,一种方式是在相同的2台服务器上设置另一个复制集,这样每个服务器都有一个mongod进程作为主进程运行,另一个进程作为辅助进程运行。

    预期的结果是,当两个服务器都启动时,这两个服务器将共享实际查询/插入的工作负载。在一台服务器失败的情况下,整个安装程序应该优雅地进行故障转移以继续运行,直到另一台服务器恢复。

    除了设置中的总体开销和进程数(mongos/configservers/arbiters)之外,这种设置还有什么缺点吗?

    4 回复  |  直到 14 年前
        1
  •  10
  •   Chris Heald    14 年前

    那肯定管用。我刚才在mongodbirc频道问过一个问题,在一台机器上运行多个mongod进程是否是个坏主意。答案是“只要你有RAM/CPU/bandwidth,就要发疯了”。

    值得注意的是,如果您正在寻找高性能的读取,并且不介意写入速度慢一点,您可以:

    • 是副本集中的服务器数,因此为所有服务器)
    • 在连接代码中设置适当的驱动程序标志,以允许从从机读取。

        2
  •  1
  •   Ben McCann    11 年前

    需要注意的一点是,当两台机器都启动时,您的查询将在它们之间进行分割。当一台机器停止运行时,所有的查询都将转到剩下的机器,从而使对它的要求翻倍。你必须确保你的机器能够承受突然加倍的查询。

        3
  •  0
  •   Andrew    13 年前

    在这种情况下,我会重新考虑切分放在首位,只是使它成为一个非切分副本集2台机器(+1仲裁)。