MongoDB与切分和复制集,我感到困惑

MongoDB与切分和复制集,我感到困惑,mongodb,replication,sharding,Mongodb,Replication,Sharding,我有几个问题,我自己无法回答 到目前为止,我所理解的是: 复制: 我可以复制数据,以便在故障转移时,我的数据可以被另一个实例访问。到目前为止还没有 切分: 我可以将数据分割成碎片,如果我的数据集太大,它可以在其他机器上添加更多数据 在mongodb中,我需要3个配置服务器,至少一个主服务器(mongos,我需要Propaly 3以避免故障切换影响)和至少一个包含数据的数据服务器(mongod,Propaly 3以避免故障切换) 我的问题是: 我应该从数据服务器上的哪种硬件开始?(datadir

我有几个问题,我自己无法回答

到目前为止,我所理解的是:

复制: 我可以复制数据,以便在故障转移时,我的数据可以被另一个实例访问。到目前为止还没有

切分: 我可以将数据分割成碎片,如果我的数据集太大,它可以在其他机器上添加更多数据

在mongodb中,我需要3个配置服务器,至少一个主服务器(mongos,我需要Propaly 3以避免故障切换影响)和至少一个包含数据的数据服务器(mongod,Propaly 3以避免故障切换)

我的问题是:

  • 我应该从数据服务器上的哪种硬件开始?(datadir的GB大小,从什么开始比较好?)
  • 在额外实例的数据实例上运行configservers好吗
  • 我从哪里开始玩mongos?我可以在3个实例(配置和或数据服务器)中的一个上完成,但它好吗
  • 我怎么知道,数据服务器需要一个新的实例足够早?(在它满之前?)
  • 我需要多少套?(这取决于什么?)
  • 我在3台完全不同的服务器上运行zookeeper,我可以在它们上运行我的configservers吗,只要性能良好,还是不行
我应该从数据服务器上的哪种硬件开始

如果不了解您的工作环境,这是不可能回答的。MongoDB所需的RAM数量取决于工作集的大小

在额外实例的数据实例上运行configservers好吗

我个人认为,出于故障转移的原因,您不希望您的配置服务器出现随机副本碎片

我从哪里开始玩mongos?我可以在3个实例(配置和或数据服务器)中的一个上完成,但它好吗

mongos不过是一个用于查询的路由器,通常最好将其安装到应用程序服务器上,以便应用程序与(或某些)本地mongos通信,然后将其路由到您的网络。有一点值得注意的是,如果您通过它们发送大量聚合查询,这些查询可能会占用一些CPU/内存

我怎么知道,数据服务器需要一个新的实例足够早

这取决于服务器的位置。我的意思是,如果是在AWS上,您可以设置警报,当集群中的总可用磁盘空间达到临界点时,自动触发新碎片的联机和设置。然而,这一切都取决于您的服务器在哪里,以及它们与谁在一起,您需要自己进一步了解这一点

我需要多少套

一片一片。基本上,每个碎片都应该是一个副本集

我在3台完全不同的服务器上运行zookeeper,我可以在它们上运行我的configservers吗,只要性能良好,还是不行

我还没有使用足够的Zookeeper来回答这个问题