0

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

到目前为止我所理解的:

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

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

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

我的问题:

  • 我应该从数据服务器上的哪种硬件开始?(数据目录的 GB 大小,从什么开始比较好?)
  • 在额外实例上的数据实例上运行配置服务器是否很好?
  • 我从哪里开始mongos?我可以在 3 个实例(配置和/或数据服务器)之一上执行此操作,但这很好吗?
  • 我怎么知道数据服务器需要足够早的新实例?(在它充满之前?)
  • 我需要多少个副本集?(或取决于什么?)
  • 我在 3 个完全不同的服务器上运行了一个 zookeeper,我可以在它们上运行我的配置服务器,只要性能很好还是不行?
4

1 回答 1

1

我应该从数据服务器上的哪种硬件开始?

如果不知道您的工作集,这是不可能回答的。MongoDB 需要的 RAM 量是您的工作集的大小。

在额外实例上的数据实例上运行配置服务器是否很好?

我个人认为,出于故障转移的原因,您不希望您的配置服务器因一些随机副本分片而停机。

我从哪里开始mongos?我可以在 3 个实例(配置和/或数据服务器)之一上执行此操作,但这很好吗?

mongos 只不过是一个用于查询的路由器,通常将它们放在您的应用程序服务器上是一个好主意,这样您的应用程序就可以与一个(或一些)本地 mongos 通信,然后再路由到您的网络。有一点需要注意,如果您通过它们发送大量聚合查询,它们可能会占用一些 CPU/内存。

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

这取决于您的服务器在哪里。我的意思是,如果它在 AWS 上,您可以设置警报,当集群中的总可用磁盘空间达到临界点时,自动触发联机和设置新分片。但是,这完全取决于您的服务器所在的位置以及它们与谁在一起,您需要自己更多地研究这一点。

我需要多少个副本集?

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

我在 3 个完全不同的服务器上运行了一个 zookeeper,我可以在它们上运行我的配置服务器,只要性能很好还是不行?

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

于 2013-07-02T09:59:45.737 回答