MongoDB 复制集原理深度解析
候选人小张在字节 P6 面试中,面试官问:
"MongoDB 怎么实现高可用?"
小张说:"用复制集,一主多从。"
面试官追问:"主库挂了怎么选新主库?"
小张说:"投票...多数原则?"
面试官继续追问:"投票是怎么算的?arbiter 是什么?"
小张答不上来了。
【面试官心理】 这道题我用来测试候选人对 MongoDB 高可用机制的理解深度。能说出复制集的占 60%,能讲清选举机制的占 20%,能说清 arbiter 和 oplog 的占 10%。
一、复制集架构 🔴
1.1 基本架构
1.2 复制集成员
1.3 复制集配置
二、数据同步机制 🔴
2.1 Oplog
2.2 同步过程
2.3 同步类型
三、选举机制 🟡
3.1 选举触发条件
3.2 选举算法
3.3 多数原则
四、读写策略 🟡
4.1 读偏好设置
4.2 写策略
4.3 Write Concern
五、生产配置 🟡
5.1 推荐配置
5.2 监控复制延迟
💡
生产环境中,建议监控复制延迟和 Oplog 大小。如果从库延迟过大,可能是网络问题或从库负载过高。
【面试官心理】 能说出"arbiter 不存储数据但可以投票"的候选人,基本都理解 MongoDB 复制集的原理。这是 P6 的水准。