用途:帮助掌握 MongoDB 分布式架构,包括副本集(replica set)与分片(sharding)的搭建、配置与运维,适用于需要高可用或水平扩展的部署场景。
主要能力:
- 副本集:以 mongod --replSet rs0 --port 27017 等命令启动多实例,通过 rs.initiate 初始化成员并设置优先级,用 rs.status() 查看状态。区分 Primary(读写)、Secondary(复制并只读)、Arbiter(参与选举、无数据)角色。
- 写关注与读偏好:支持 writeConcern 的 w:0、w:1、w:'majority' 及 wtimeout;读偏好包括 primary、primaryPreferred、secondary、secondaryPreferred、nearest。
- 分片:启动 configsvr 配置服务器与 mongos 路由,启动 shardsvr 分片服务器;用 sh.enableSharding 启用数据库分片,sh.shardCollection 指定分片键,支持范围、哈希(hashed)与复合分片键;用 sh.status()、listShards、balancerStatus 查看状态。
- 故障转移与高可用:rs.stepDown() 触发选举,查看 oplog 与复制延迟,监控成员状态。
- 事务:MongoDB 4.0+ 支持多文档事务,通过 session.withTransaction 使用。
- Python 示例:pymongo 连接副本集、设置 WriteConcern 与 ReadPreference。
使用方式:按资料中的命令与代码片段操作,先搭建副本集或分片集群,再配置写关注、读偏好与分片键,最后通过监控命令检查状态。
限制:资料未提供具体版本兼容性、性能基准、收费或平台信息;分片键选择与集群规模需结合实际数据评估。