这是mongodb允许分片/缩放的最佳最小设置吗?

时间:2011-04-16 06:49:30

标签: mongodb

3 instances for config servers
1 instance for webserver & mongos
1 instance for shard 1

然后当我需要启动更多分片时,我可以添加更多实例吗?

另外,什么是副本集?如果我说3个服务器到shard 1那么那是一个副本集吗?

1 个答案:

答案 0 :(得分:13)

副本集是一组彼此克隆的计算机。 (,即:replicas )在给定的集合中,有一个选举的主人。默认情况下,读取和写入将转到此选定的主服务器,副本只是将更改“拖尾”为最新副本。如果主服务器出现故障,则选择一个新服务器并且系统继续运行。文档为here

所以你问一下使用MongoDB进行扩展。缩放有两种类型:

  • 读取缩放:使用副本集(请参阅here
  • 写缩放:使用Sharding

副本集的最小配置是   - 2个完整的复制品   - 1个仲裁者(轻量级进程,投票时打破关系)

Sharding的最小配置是   - 1个配置服务器   - 1个mongod进程(只有一个分片)   - 1个或更多mongos(通常在应用服务器上)

但是,您可能不希望在生产中像这样运行。仅运行单个数据库,意味着您只有一个数据源,这可能导致大的停机时间或总数据丢失。这通常通过使用副本集来解决。

此外,配置服务器非常重要。 MongoDB支持1或3个配置服务器。大多数生产部署都使用3.请注意,配置服务器和仲裁器非常轻量级,可以存在于其他盒子或亚马逊微实例上。

大多数带分片的生产部署也涉及副本集。事实上,它们通常以副本集开始。

  

然后当我需要启动更多分片时,我可以添加更多实例吗?

从分片角度来看,一样简单:   - 启动新的分片服务器   - 从mongos

运行addshard命令

请注意,添加分片时,您需要留出时间和资源,因为数据会在分片之间迁移,并且所有内容都会重新平衡。