我有几个问题,我无法自己回答。
到目前为止我所理解的是:
复制: 我可以复制数据,因此在故障转移时,我的数据可以被另一个实例访问。到目前为止清楚。
拆分: 我可以将数据拆分为分片,如果我的数据集变得太大,它可以在其他机器上添加更多数据。
在mongodb中,我需要3个配置服务器,至少一个主服务器(mongos,我需要3个以避免因故障转移而受到影响)以及至少一个包含数据的数据服务器(mongod,可以避免故障转移3)。
我的问题:
答案 0 :(得分:1)
我应该从数据服务器开始使用哪种硬件?
如果不知道你的工作集,这是不可能回答的。 MongoDB需要的RAM量是工作集的大小。
在额外实例上的数据实例上运行配置服务器是否合适?
我个人认为,出于故障转移原因,您不希望配置服务器因某些随机副本分片而崩溃。
我在哪里开始玩mongos?我可以在3个实例中的一个(配置和/或数据服务器)上完成它,但这样做好吗?
mongos只不过是一个查询路由器,通常将它们打到您的应用程序服务器上是一个好主意,这样您的应用程序就会与一个(或某些)本地mongos对话,然后这些mongos会路由到您的网络。有一点很简单,如果您通过它们发送大量聚合查询,这些可能会占用一些CPU /内存。
我怎么知道dataserver需要足够早的新实例?
这取决于您的服务器所在的位置。我的意思是,如果它在AWS上,您可以设置警报,当集群中的总可用磁盘空间达到临界点时,这些警报会自动触发新分片的上线和设置。但是,这完全取决于您的服务器所在的位置以及他们所在的位置,您需要自己更多地了解这一点。
我需要多少个复制酶?
每个碎片一个。基本上每个分片应该是副本集。
我在3个完全不同的服务器上运行一个zookeeper,我可以在它们上运行我的配置服务器,只要性能很好或者是不行的吗?
我没有足够使用Zookeeper来回答这个问题。