MongoDB分片复制集群以进行生产部署

时间:2013-11-21 06:41:57

标签: mongodb

我想部署Mongodb复制的分片群集进行制作 -

  • 2副本集:R11,R21,R31,R21,R22,R23(1个主要,2个次要 在每一组)
  • 3个配置服务器 - C1,C2,C3
  • 1 Mongos - M1

我的Qs是 -

  1. Ci和Rij在不同的机器上吗?推荐什么?我知道这取决于使用情况,但推荐的是什么?我在文档中读到,建议使用3种不同的Ci机器。这是否意味着这3台机器必须与用于Rij的机器不同?
  2. M1与Ci和Rij在不同的机器上或者我可以使用,例如,R11代表M1。
  3. 我的用例 - 在前六个月,我的数据是可管理的。它会在一段时间内变得很大,比如在一年之内。

2 个答案:

答案 0 :(得分:2)

我将用一些笔记回答这个问题。

  

Ci与Rij在不同的机器上吗?

正如@SalvadorDali所说,您可以将配置服务器放在您的分片/ mongos /任何服务器上。他们只为你的mongos路由器提供配置信息,以传播他们自己的配置,从而了解你的集群是如何构建的以及它是如何运行的。

  

建议什么?

MongoDB在冗余时茁壮成长。即使你可以把它们放在同一台服务器上,这会降低你的冗余度,反过来又能克服电路故障。

强烈建议为这些机器配备三台功耗极低的机器,你甚至可以在手机上运行配置服务器(当然你不会出于明显的原因,一个是它不包含兼容的MongoDB的处理器。)

  

这是否意味着这三台机器必须与用于Rij的机器不同?

他们应该。只有在测试环境中,您才希望减少群集的冗余。

  

M1是否与Ci和Rij不同,或者我可以使用R11代替M1。

M1实际上通常位于不同的机器上。很多时候,最好的设置是每个应用程序服务器使用一个mongos,并在其编程中调用应用程序localhost。这样,您的mongos实例不会绑定到一组外部实例,而是绑定到应用程序的可用性。如果您的应用程序不可用,请让我们面对它,那么您的mongos实例中没有多少内容可用......

答案 1 :(得分:1)

他最小的配置就是使用3台服务器。

  

>>> 1. Ci和Rij在不同的机器上吗?

Ci可以在同一台机器上使用Rij。请看下面的图片。

  

>>>推荐什么?

没有关于配置的严格建议,但如果您希望系统具有高可用性,则只需在不同的计算机上部署Ci服务器并在它们之间分配Rij。一条规则是使用不少于RF(副本因素)服务器进行配置。对于您的情况,RF = 3表示至少有3台机器。

  

>>>我在文档中读到,建议使用3种不同的Ci机器。这是否意味着这三台机器必须不同   从用于Rij的那些?

不,您可以使用这3台机器在Rij和Ci之间共享它们。

  

>>>是M1与Ci和Rij在不同的机器上,或者我可以使用R11代替M1。

M1可以部署在Ci和Rij的同一台机器上。

最小的配置:

The smallest configuration 中间配置: enter image description here 灾难恢复配置最多:为每个mongod和mongos实例使用单独的服务器。