MongoDB 分片集群深度解析
候选人小李在字节 P7 架构面中,面试官问:
"MongoDB 怎么支持海量数据存储?"
小李说:"用分片集群,把数据分散到多个节点。"
面试官追问:"数据是怎么分片的?mongos 是什么?"
小李说:"mongos 是路由...?"
面试官继续追问:"分片键怎么选?"
小李答不上来了。
【面试官心理】 这道题我用来测试候选人对 MongoDB 分片集群的理解深度。能说出分片集群架构的占 50%,能讲清组件作用的占 20%,能说清分片键选择的占 10%。
一、分片集群架构 🔴
1.1 核心组件
1.2 配置分片集群
二、数据分片机制 🔴
2.1 Chunk
2.2 分片键范围
2.3 自动均衡
三、查询路由 🟡
3.1 查询分发
3.2 广播查询的性能问题
3.3 sort 和 limit
四、Config Server 🟡
4.1 Config Server 存储内容
4.2 Config Server 推荐配置
五、生产最佳实践 🟡
5.1 分片数量建议
5.2 Chunk 大小配置
5.3 均衡器配置
💡
生产环境中,建议在业务低峰期进行分片迁移,避免影响性能。定期监控分片间的数据分布是否均衡。
【面试官心理】 能说出"广播查询"和"mongos 合并排序"原理的候选人,基本都有实际使用分片集群的经验。这是 P7 的水准。