生产环境中的MongoDB分片:部署、维护与管理
1. 生产环境分片配置与拓扑选择
在生产环境中,合理的分片配置至关重要。每个分片通常会进行两次复制,并且二级数据中心会存储所有必要的数据,以便在一级数据中心出现故障时,用户能够完全重建分片集群。
选择适合应用程序的分片拓扑时,应根据恢复时间目标(RTO)来衡量可容忍的停机时间。要考虑潜在的故障场景并进行模拟,评估数据中心故障对应用程序和业务的影响。
2. 集群部署与配置
2.1 添加新分片
用户常关心部署多少分片以及每个分片的大小。通常,少量大分片比大量小分片更优,因为每个额外的分片会增加复杂性且需要副本。确定每个分片的实际大小需结合应用程序需求。当应用程序需求超出集群中现有或计划的分片容量时,就需要添加新分片。务必在集群性能下降前添加足够的分片,否则MongoDB可能无法快速重新平衡数据。
2.2 对现有集合进行分片
可以对现有集合进行分片,但数据分布到各个分片可能需要一些时间。每次只能进行一轮平衡操作,数据迁移速度约为每分钟100 - 200 MB。例如,对一个50 GB的集合进行分片大约需要八小时,且可能会有适度的磁盘活动。对于大型集合,初始分片时可能需要手动拆分以加快分片过程,因为拆分是由插入操作触发的。因此,在性能问题出现的最后时刻对集合进行分片并非明智之举,应提前规划。
2.3 预拆分块以进行初始加载
如果要将大量数据集加载到分片集合中,且了解数据分布情况,可以通过预拆分和预迁移块来节省时间。例如,将电子表格数据导入新的MongoDB分片集群时,可使用 split
超级会员免费看
订阅专栏 解锁全文
1198

被折叠的 条评论
为什么被折叠?



