3 instances for config servers
1 instance for webserver & mongos
1 instance for shard 1
然后当我需要启动更多分片时,我可以添加更多实例吗?
另外,什么是副本集?如果我说3个服务器到shard 1那么那是一个副本集吗?
答案 0 :(得分:13)
副本集是一组彼此克隆的计算机。 (,即:replicas )在给定的集合中,有一个选举的主人。默认情况下,读取和写入将转到此选定的主服务器,副本只是将更改“拖尾”为最新副本。如果主服务器出现故障,则选择一个新服务器并且系统继续运行。文档为here。
所以你问一下使用MongoDB进行扩展。缩放有两种类型:
副本集的最小配置是 - 2个完整的复制品 - 1个仲裁者(轻量级进程,投票时打破关系)
Sharding的最小配置是
- 1个配置服务器
- 1个mongod
进程(只有一个分片)
- 1个或更多mongos
(通常在应用服务器上)
但是,您可能不希望在生产中像这样运行。仅运行单个数据库,意味着您只有一个数据源,这可能导致大的停机时间或总数据丢失。这通常通过使用副本集来解决。
此外,配置服务器非常重要。 MongoDB支持1或3个配置服务器。大多数生产部署都使用3.请注意,配置服务器和仲裁器非常轻量级,可以存在于其他盒子或亚马逊微实例上。
大多数带分片的生产部署也涉及副本集。事实上,它们通常以副本集开始。
然后当我需要启动更多分片时,我可以添加更多实例吗?
从分片角度来看,应一样简单:
- 启动新的分片服务器
- 从mongos
addshard
命令
请注意,添加分片时,您需要留出时间和资源,因为数据会在分片之间迁移,并且所有内容都会重新平衡。